/** * Invoke a trigger * * @param Event $event The event that is triggered * @param boolean $return_when_processed (optional) whether to return when processed or continue * * @return mixed */ protected static function _trigger(Event $event, $return_when_processed = false) { $module = $event->getModule(); $identifier = $event->getIdentifier(); Logging::log("Triggering {$module} - {$identifier}"); if (isset(self::$_registeredlisteners[$module][$identifier])) { foreach (self::$_registeredlisteners[$module][$identifier] as $trigger) { try { $cb_string = is_array($trigger) ? get_class($trigger[0]) . '::' . $trigger[1] : $trigger; if (is_object($cb_string)) { Logging::log('Running anonymous callback function'); } else { Logging::log('Running callback function ' . $cb_string); } $retval = call_user_func($trigger, $event); if ($return_when_processed && $event->isProcessed()) { return true; } if (is_object($cb_string)) { Logging::log('done (Running anonymous callback function)'); } else { Logging::log('done (Running callback function ' . $cb_string . ')'); } } catch (\Exception $e) { throw $e; } } } Logging::log("done (Triggering {$module} - {$identifier})"); }