From 2fbb6b112513078edf4b7620f34770e9c2f9c207 Mon Sep 17 00:00:00 2001 From: x Date: Mon, 21 Sep 2020 09:29:52 +0200 Subject: [PATCH 1/3] new handle trigger method --- ...ace_99_modMyModule_MyModuleTriggers.class.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php index 4c5951dad70..28adb0a78f7 100644 --- a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php +++ b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php @@ -102,6 +102,22 @@ class InterfaceMyModuleTriggers extends DolibarrTriggers // Put here code you want to execute when a Dolibarr business events occurs. // Data and type of action are stored into $object and $action + /** + * new method to handle triggers + * you can now create a method for the interface + * this method should be named like the trigger in camelCase + * for example : COMPANY_CREATE => public function companyCreate($action, $object, User $user, Translate $langs, Conf $conf) + */ + $methodName = lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', strtolower($action))))); + $callback = array($this, $methodName); + if(is_callable($callback)){ + dol_syslog( + "Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id + ); + + return call_user_func($callback, $action, $object, $user, $langs, $conf); + }; + switch ($action) { // Users //case 'USER_CREATE': From 4cbe8d8623176f056907c6fbcc40b3b3f9ca036e Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Mon, 21 Sep 2020 07:34:00 +0000 Subject: [PATCH 2/3] Fixing style errors. --- .../interface_99_modMyModule_MyModuleTriggers.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php index 28adb0a78f7..add80d58af3 100644 --- a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php +++ b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php @@ -110,7 +110,7 @@ class InterfaceMyModuleTriggers extends DolibarrTriggers */ $methodName = lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', strtolower($action))))); $callback = array($this, $methodName); - if(is_callable($callback)){ + if (is_callable($callback)){ dol_syslog( "Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id ); From a32456afc509deea3610ce7fe05afc2cd6112b2e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2020 12:35:18 +0200 Subject: [PATCH 3/3] Update interface_99_modMyModule_MyModuleTriggers.class.php --- .../interface_99_modMyModule_MyModuleTriggers.class.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php index add80d58af3..be6d42047ce 100644 --- a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php +++ b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php @@ -102,12 +102,8 @@ class InterfaceMyModuleTriggers extends DolibarrTriggers // Put here code you want to execute when a Dolibarr business events occurs. // Data and type of action are stored into $object and $action - /** - * new method to handle triggers - * you can now create a method for the interface - * this method should be named like the trigger in camelCase - * for example : COMPANY_CREATE => public function companyCreate($action, $object, User $user, Translate $langs, Conf $conf) - */ + // You can isolate code for each action in a separate method: this method should be named like the trigger in camelCase. + // For example : COMPANY_CREATE => public function companyCreate($action, $object, User $user, Translate $langs, Conf $conf) $methodName = lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', strtolower($action))))); $callback = array($this, $methodName); if (is_callable($callback)){ @@ -118,6 +114,7 @@ class InterfaceMyModuleTriggers extends DolibarrTriggers return call_user_func($callback, $action, $object, $user, $langs, $conf); }; + // Or you can execute some code here switch ($action) { // Users //case 'USER_CREATE':