Système de Triggers: Difference between revisions

Jump to navigation Jump to search
Tag: 2017 source edit
Tag: 2017 source edit
Line 99: Line 99:
Liste non exhaustive.
Liste non exhaustive.


= Gérer de nouveau évènements =
= Créer de nouveaux événements Triggers =


Pour gérer d'autre évènements 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:
Pour gérer d'autres événements 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 des objects manipulés:


<source lang="php">
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('XXXXX_YYYYY',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
</source>
Ici, $this doit être l'objet de la classe métier qui contient toutes les informations à passer au trigger. Remplacer, de plus, le 'XXXXX_YYYYY' par un code évènement non déjà utilisé.
'''D'autre part, si l’exécution du trigger revient en erreur, vous devez annuler l'action correspondante.'''
'''A partir de la version 3.7, vous devez utiliser ce type de code :'''
<source lang="php">
<source lang="php">
// Call trigger
// Call trigger
Line 123: Line 110:
</source>
</source>


Il sera alors possible d'ajouter dans la méthode run_trigger, un if qui permet de gérer ce code. La méthode run_trigger serait alors de la forme :
Il sera alors possible d'ajouter dans la méthode run_trigger de tout fichier trigger, un if qui permet de gérer ce code. La méthode run_trigger serait alors de la forme :


<source lang="php">
<source lang="php">

Navigation menu