Changes

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')
 +
        ...
 +
  }