Line 8:
Line 8:
Donc, pour ajouter son propre code qui sera déclenché par trigger, la procédure est la suivante:
Donc, pour ajouter son propre code qui sera déclenché par trigger, la procédure est la suivante:
−
+
1) Copier le fichier '''htdocs/core/triggers/interface_all_Demo.class.php''' sous le nom:
−
1) (uniquement pour Dolibarr >= v3.2.0) dans le fichier descripteur de votre module (ex: '''/monmodule/core/modules/modMonModule.class.php'''), ajouter triggers->1 dans le tableau module_parts:
−
<source lang="php">
−
// Defined all module parts (triggers, login, substitutions, menus, etc...) (0=disable,1=enable)
−
$this->module_parts = array('triggers' => 1);
−
//$this->module_parts = array('triggers' => 1,
−
// 'login' => 0,
−
// 'substitutions' => 0,
−
// 'menus' => 0);
−
</source>
−
Puis désactiver et réactiver le module. Ceci aura pour effet d'ajouter une ligne dans la [[Table llx_const]] pour indiquer à Dolibarr qu'il faut recherch un trigger dans le répertoire de votre module '''htdocs/monmodule/core/triggers'''.
−
−
−
2) Copier le fichier '''htdocs/core/triggers/interface_all_Demo.class.php''' sous le nom:
* '''interface_all_''Xxx''.class.php'''
* '''interface_all_''Xxx''.class.php'''
ou bien
ou bien
Line 28:
Line 15:
Il faut laisser ce nouveau fichier dans le même répertoire.
Il faut laisser ce nouveau fichier dans le même répertoire.
Rem: Les valeurs utilisable pour modMonModule sont visibles dans le répertoire
Rem: Les valeurs utilisable pour modMonModule sont visibles dans le répertoire
−
''htdocs/includes/modules''.
+
''htdocs/core/modules''.
Par exemple, on pourra nommer notre nouveau trigger:
Par exemple, on pourra nommer notre nouveau trigger:
−
''htdocs/includes/triggers/interface_modFacture_Monworkflow.class.php''
+
''htdocs/core/triggers/interface_modFacture_Monworkflow.class.php''
En créant un fichier nommé comme dans cet exemple, notre nouveau trigger sera déclenché à chaque évènement métier Dolibarr et à condition que le module Facture soit actif.
En créant un fichier nommé comme dans cet exemple, notre nouveau trigger sera déclenché à chaque évènement métier Dolibarr et à condition que le module Facture soit actif.
−
'''Note''': à partir de Dolibarr v3.2.x, il est nécessaire de placer les fichiers triggers dans le dossier '''core/''' au lieu de includes/ (eg: htdocs/core/triggers/interface_modMyModule_Xxx.class.php).
+
'''Note''': avant Dolibarr v3.2.x, il était nécessaire de placer les fichiers triggers dans le dossier '''includes/triggers''' au lieu de '''core/triggers''' (eg: htdocs/core/triggers/interface_modMyModule_Xxx.class.php).
−
−
'''Note2''': Il est aussi possible de placer les fichiers triggers dans un sous-dossier du module. Eg: si le module réside dans htdocs/mymodule/, alors il est possible de placer les triggers dans htdocs/mymodule/core/triggers/
+
'''Note2''': Avec la 3.2+, il est aussi possible de placer les fichiers triggers dans un sous-dossier de module. Ex: si le module réside dans htdocs/mymodule/, alors il est possible de placer les triggers dans htdocs/mymodule/core/triggers/.
+
Mais dans ce cas, le trigger ne sera trouvé que si vous le déclarer dans le fichier descripteur de votre module. Pour cela, ajouter ajouter triggers->1 dans le tableau module_parts (ex: '''/monmodule/core/modules/modMonModule.class.php'''):
+
<source lang="php">
+
// Defined all module parts (triggers, login, substitutions, menus, etc...) (0=disable,1=enable)
+
$this->module_parts = array('triggers' => 1);
+
//$this->module_parts = array('triggers' => 1,
+
// 'login' => 0,
+
// 'substitutions' => 0,
+
// 'menus' => 0);
+
</source>
+
Puis désactiver et réactiver le module. Ceci aura pour effet d'ajouter une ligne dans la [[Table llx_const]] pour indiquer à Dolibarr qu'il faut recherch un trigger dans le répertoire de votre module '''htdocs/monmodule/core/triggers'''.
−
3) Editer ce fichier ''interface_modMonModule_Monworkflow.class.php'' afin de renommer la classe ''InterfaceDemo'' par ''InterfaceMonworkflow''
+
2) Editer ce fichier ''interface_modMonModule_Monworkflow.class.php'' afin de renommer la classe ''InterfaceDemo'' par ''InterfaceMonworkflow''
Ensuite, accéder à la page Accueil-> Infos Systèmes -> Dolibarr -> Triggers.
Ensuite, accéder à la page Accueil-> Infos Systèmes -> Dolibarr -> Triggers.