From f20ff9581b578e3ec00b0c0ef8e034fe5d2e5b91 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 6 Jul 2009 07:15:02 +0000 Subject: [PATCH] Fix: Better error management and fix pb in activating supplier module --- htdocs/adherents/fiche.php | 4 +- .../modules/DolibarrModules.class.php | 50 ++++++++++++------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index 3813f997d16..864dccca461 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -1196,14 +1196,14 @@ if ($rowid && $action != 'edit') } } - // Supprimer + // Delete if ($user->rights->adherent->supprimer) { print "id&action=delete\">".$langs->trans("Delete")."\n"; } else { - print "".$langs->trans("Delete").""; + print "trans("NoPermissions")."\">".$langs->trans("Delete").""; } // Action SPIP diff --git a/htdocs/includes/modules/DolibarrModules.class.php b/htdocs/includes/modules/DolibarrModules.class.php index c49e06a2d5a..9f5aa9e95b3 100644 --- a/htdocs/includes/modules/DolibarrModules.class.php +++ b/htdocs/includes/modules/DolibarrModules.class.php @@ -106,19 +106,22 @@ class DolibarrModules if (! $err) $err+=$this->create_dirs(); // Execute les requetes sql complementaires - for ($i = 0 ; $i < sizeof($array_sql) ; $i++) + if (! $err) { - if (! $err) + for ($i = 0 ; $i < sizeof($array_sql) ; $i++) { - $sql=$array_sql[$i]; - - dol_syslog("DolibarrModules::_init sql=".$sql, LOG_DEBUG); - $result=$this->db->query($sql); - if (! $result) + if (! $err) { - $this->error=$this->db->error(); - dol_syslog("DolibarrModules::_init Error ".$this->error, LOG_ERR); - $err++; + $sql=$array_sql[$i]; + + dol_syslog("DolibarrModules::_init sql=".$sql, LOG_DEBUG); + $result=$this->db->query($sql); + if (! $result) + { + $this->error=$this->db->error(); + dol_syslog("DolibarrModules::_init Error ".$this->error, LOG_ERR); + $err++; + } } } } @@ -540,6 +543,8 @@ class DolibarrModules } else { + $this->error=$this->db->lasterror(); + dol_syslog("DolibarrModules::insert_boxes ".$this->error, LOG_ERR); $err++; } } @@ -820,8 +825,8 @@ class DolibarrModules } /** - \brief Insere les permissions associees au module dans llx_rights_def - \return int Nombre d'erreurs (0 si ok) + * \brief Insert permissions related to module to activate into llx_rights_def + * \return int Number of error (0 if OK) */ function insert_permissions() { @@ -837,11 +842,11 @@ class DolibarrModules $sql_del.= " WHERE ".$this->db->decrypt('name',$conf->db->dolibarr_main_db_encryption,$conf->db->dolibarr_main_db_cryptkey)." = '".$this->const_name."'"; $sql_del.= " AND entity IN (0,".$conf->entity.")"; $resql=$this->db->query($sql_del); - if ($resql) { - + if ($resql) + { $obj=$this->db->fetch_object($resql); - if ($obj->value) { - + if ($obj->value) + { // Si module actif foreach ($this->rights as $key => $value) { @@ -892,6 +897,12 @@ class DolibarrModules } } } + else + { + $this->error=$this->db->lasterror(); + dol_syslog("DolibarrModules::insert_boxes ".$this->error, LOG_ERR); + $err++; + } return $err; } @@ -1101,9 +1112,10 @@ class DolibarrModules $sql = "SELECT count(*)"; $sql.= " FROM ".MAIN_DB_PREFIX."const"; - $sql.= " WHERE ".$this->db->decrypt('name',$conf->db->dolibarr_main_db_encryption,$conf->db->dolibarr_main_db_cryptkey)." = ".$name; + $sql.= " WHERE ".$this->db->decrypt('name',$conf->db->dolibarr_main_db_encryption,$conf->db->dolibarr_main_db_cryptkey)." = '".$name."'"; $sql.= " AND entity = ".$conf->entity; + dol_syslog("DolibarrModules::insert_dirs sql=".$sql); $result=$this->db->query($sql); if ($result) { @@ -1114,12 +1126,14 @@ class DolibarrModules $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible,entity)"; $sql.= " VALUES (".$this->db->encrypt("'".$name."'",$conf->db->dolibarr_main_db_encryption,$conf->db->dolibarr_main_db_cryptkey).",'chaine',".$this->db->encrypt("'".$dir."'",$conf->db->dolibarr_main_db_encryption,$conf->db->dolibarr_main_db_cryptkey).",'Directory for module ".$this->name."','0',".$conf->entity.")"; - dol_syslog("DolibarrModules::insert_dir_output sql=".$sql); + dol_syslog("DolibarrModules::insert_dirs sql=".$sql); $resql=$this->db->query($sql); } } else { + $this->error=$this->db->lasterror(); + dol_syslog("DolibarrModules::insert_dirs ".$this->error, LOG_ERR); $err++; }