From 48e0f55d6b5618569385af745756506f8c480e86 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sat, 12 Aug 2023 01:14:36 +0900 Subject: [PATCH] Support event handlers (triggers) that are only called before/after specific action --- classes/module/ModuleObject.class.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/classes/module/ModuleObject.class.php b/classes/module/ModuleObject.class.php index 8b0024cd8..a93f82270 100644 --- a/classes/module/ModuleObject.class.php +++ b/classes/module/ModuleObject.class.php @@ -748,6 +748,16 @@ class ModuleObject extends BaseObject Context::set('module_info', $this->module_info); } + // Trigger before specific action + $triggerAct = sprintf('act:%s.%s', $this->module, $this->act); + $triggerOutput = ModuleHandler::triggerCall($triggerAct, 'before', $this); + if(!$triggerOutput->toBool()) + { + $this->setError($triggerOutput->getError()); + $this->setMessage($triggerOutput->getMessage()); + return false; + } + // Run try { @@ -759,6 +769,9 @@ class ModuleObject extends BaseObject $location = $e->getFile() . ':' . $e->getLine(); $output->add('rx_error_location', $location); } + + // Trigger after specific action + ModuleHandler::triggerCall($triggerAct, 'after', $output); } else {