Example #1
0
 /**
  * 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})");
 }