31,003
edits
No edit summary |
|||
| 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 | |||
* '''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/ | ''htdocs/core/modules''. | ||
Par exemple, on pourra nommer notre nouveau trigger: | Par exemple, on pourra nommer notre nouveau trigger: | ||
''htdocs/ | ''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''': | '''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''': 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'''. | |||
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. | ||