2
0
forked from Wavyzz/dolibarr

New: Les triggers webcalendar grent les modif d'tat du module adhrent.

Qual: Amlioration de la gestion d'erreur des triggers. La totalit des erreurs de chaque triggers est remonte dans un tableau.
This commit is contained in:
Laurent Destailleur
2007-02-11 16:32:29 +00:00
parent b33e19c7a9
commit fe7df68ef4
11 changed files with 277 additions and 78 deletions

View File

@@ -35,7 +35,8 @@
class Interfaces
{
var $dir; // Repertoire contenant les fichiers triggers
var $dir; // Directory with all trigger files
var $errors=array(); // Array for errors
/**
* \brief Constructeur.
@@ -49,20 +50,20 @@ class Interfaces
/**
* \brief Fonction appel<65>e lors du d<>clenchement d'un <20>v<EFBFBD>nement Dolibarr.
* Cette fonction d<>clenche tous les triggers trouv<75>s
* Cette fonction d<>clenche tous les triggers trouv<75>s actifs.
* \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<63>s si pas d'erreurs. Nb en erreur sinon.
* \return int Nb triggers d<>clench<63>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;
$nbtotal = $nbok = $nbko = 0;
while (($file = readdir($handle))!==false)
{
@@ -83,13 +84,24 @@ class Interfaces
if ($objMod)
{
$modules[$i] = $modName;
if ($objMod->run_trigger($action,$object,$user,$lang,$conf) > 0)
$result=$objMod->run_trigger($action,$object,$user,$lang,$conf);
if ($result > 0)
{
// Action OK
$nbtotal++;
$nbok++;
}
else
if ($result == 0)
{
// Aucune action faite
$nbtotal++;
}
if ($result < 0)
{
// Action KO
$nbtotal++;
$nbko++;
$this->errors[]=$objMod->error;
}
$i++;
}
@@ -97,8 +109,15 @@ class Interfaces
}
}
}
if ($nbko) return $nbko;
return $nbok;
if ($nbko)
{
dolibarr_syslog("Interfaces::run_triggers Found: ".$nbtotal.", Done: ".$nbok.", Failed: ".$nbko);
return -$nbko;
}
else
{
return $nbok;
}
}
}
?>