diff --git a/htdocs/interfaces.class.php b/htdocs/interfaces.class.php index a35824db64d..fcbc6b7f76d 100644 --- a/htdocs/interfaces.class.php +++ b/htdocs/interfaces.class.php @@ -35,62 +35,70 @@ class Interfaces { - //! Repertoire contenant les definitions des triggers - var $dir; - - /** - * \brief Constructeur. - * \param DB handler d'accès base - */ - function Interfaces($DB) - { - $this->db = $DB ; - $this->dir = DOL_DOCUMENT_ROOT . "/includes/triggers"; - } - - /** - * \brief Fonction appelée lors du déclenchement d'un évènement Dolibarr. - * Cette fonction déclenche tous les triggers trouvés - * \param action Code de l'evenement - * \param object Objet concern - * \param user Objet user - * \param lang Objet lang - * \param conf Objet conf - * \return int Nbre de triggers déclenchés si pas d'erreurs. Nb en erreur sinon. - */ - function run_triggers($action,$object,$user,$lang,$conf) - { - - $handle=opendir($this->dir); - $modules = array(); - $nbok = $nbko = 0; - - while (($file = readdir($handle))!==false) - { - if (is_readable($this->dir."/".$file) && eregi('interface_(.*).class.php$',$file,$reg)) - { - $modName = "Interface".ucfirst($reg[1]); - //print "file=$file"; print "modName=$modName"; exit; - if ($modName) - { - include_once($this->dir."/".$file); - $objMod = new $modName($this->db); - if ($objMod) - { - if ($objMod->run_trigger($action,$object,$user,$lang,$conf) > 0) - { - $nbok++; - } - else - { - $nbko++; - } - } - } - } - } - if ($nbko) return $nbko; - return $nbok; - } + var $dir; // Repertoire contenant les fichiers triggers + + /** + * \brief Constructeur. + * \param DB handler d'accès base + */ + function Interfaces($DB) + { + $this->db = $DB ; + $this->dir = DOL_DOCUMENT_ROOT . "/includes/triggers"; + } + + /** + * \brief Fonction appelée lors du déclenchement d'un évènement Dolibarr. + * Cette fonction déclenche tous les triggers trouvés + * \param action Code de l'evenement + * \param object Objet concern + * \param user Objet user + * \param lang Objet lang + * \param conf Objet conf + * \return int Nbre de triggers déclenchés si pas d'erreurs. Nb en erreur sinon. + */ + function run_triggers($action,$object,$user,$lang,$conf) + { + + $handle=opendir($this->dir); + $modules = array(); + $nbok = $nbko = 0; + + while (($file = readdir($handle))!==false) + { + if (is_readable($this->dir."/".$file) && eregi('interface_(.*).class.php$',$file,$reg)) + { + $modName = "Interface".ucfirst($reg[1]); + //print "file=$file"; print "modName=$modName"; exit; + if ($modName) + { + if (in_array($modName,$modules)) + { + dolibarr_syslog("Error: Trigger file with name '$modName' already launched. Remove duplicate file."); + } + else + { + include_once($this->dir."/".$file); + $objMod = new $modName($this->db); + if ($objMod) + { + $modules[$i] = $modName; + if ($objMod->run_trigger($action,$object,$user,$lang,$conf) > 0) + { + $nbok++; + } + else + { + $nbko++; + } + $i++; + } + } + } + } + } + if ($nbko) return $nbko; + return $nbok; + } } ?> diff --git a/htdocs/user.class.php b/htdocs/user.class.php index 92975e24577..f9bf0e0ce1c 100644 --- a/htdocs/user.class.php +++ b/htdocs/user.class.php @@ -651,7 +651,8 @@ class User { $sql = "INSERT INTO ".MAIN_DB_PREFIX."user (datec,login,ldap_sid) VALUES(now(),'".addslashes($this->login)."','".$this->ldap_sid."')"; $result=$this->db->query($sql); - + + dolibarr_syslog("User.class::create sql=".$sql); if ($result) { $table = "".MAIN_DB_PREFIX."user"; @@ -666,7 +667,7 @@ class User } // Update minor fields - if ($this->update() < 0) + if ($this->update(1) < 0) { $this->error=$this->db->error(); $this->db->rollback(); diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index d9fe387e8d8..070caf838ed 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -166,7 +166,7 @@ if ($_POST["action"] == 'add' && $canadduser) $db->rollback(); //$message='