Line 23:
Line 23:
}
}
−
Les évenements Dolibarr qui provoquent un appel de triggers sont, pour l'instant, les suivants:
+
Les évenements Dolibarr qui provoquent un appel de triggers sont, pour l'instant, identifiés par les codes évenements suivants:
* COMPANY_CREATE
* COMPANY_CREATE
* COMPANY_MODIFY
* COMPANY_MODIFY
* COMPANY_DELETE
* COMPANY_DELETE
+
+
+
Pour gérer d'autre évenements que ceux ci-dessus, il faut modifier le code Dolibarr pour y ajouter la séquence suivante dans les méthodes métiers des classes utilisées pour gérer les évenements:
+
+
// Appel des triggers
+
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+
$interface=new Interfaces($this->db);
+
$interface->run_triggers('XXXXX_YYYYYY',$this,$user,$lang,$conf);
+
// Fin appel triggers
+
+
En remplaçant le XXXXX_YYYYYY par un code évenement non déjà utilisé.
+
Il sera alors possible d'ajouter dans la methode run_trigger, un if qui permet de gérer ce code. La methode run_trigger serait alors de la forme :
+
+
function run_trigger($action,$object,$user,$lang,$conf)
+
{
+
// Mettre ici le code à exécuter en réaction de l'action
+
// Le type de l'évenement Dolibarr est stocké dans $action
+
// Les données de l'action sont stockées dans $object
+
// La configuration, utilisateur et langage sont dans $conf,$user et $lang
+
<b>
+
if ($action == 'XXXXX_YYYYY')
+
{
+
dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
+
}
+
</b>
+
elseif ($action == 'COMPANY_CREATE')
+
{
+
dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
+
}
+
elseif ($action == 'COMPANY_MODIFY')
+
{
+
dolibarr_syslog("Trigger for action '$action' launched. id=".$object->id);
+
}
+
elseif ($action == 'COMPANY_DELETE')
+
...
+
}