31,003
edits
(Ajout explication sur création d'une interface Dolibarr vers exterieur) |
No edit summary |
||
| 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') | |||
... | |||
} | |||