Example #1
0
 /**
  * Invoke a trigger
  *
  * @param string $module The module for which the trigger is active
  * @param string $identifier The trigger identifier
  * @param array $params Parameters to pass to the registered listeners
  *
  * @return unknown_type
  */
 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) ? (is_string($trigger[0]) ? $trigger[0] : get_class($trigger[0])) . '::' . $trigger[1] : $trigger;
                 Logging::log('Running callback function ' . $cb_string);
                 $retval = call_user_func($trigger, $event);
                 if ($return_when_processed && $event->isProcessed()) {
                     return true;
                 }
                 Logging::log('done (Running callback function ' . $cb_string . ')');
             } catch (Exception $e) {
                 throw $e;
             }
         }
     }
     Logging::log("done (Triggering {$module} - {$identifier})");
 }
Example #2
0
 /**
  * @return array
  */
 public function getSubscribers(Event $event)
 {
     $directSubscribers = array_key_exists($i = $event->getIdentifier(), $this->subscribers) ? $this->subscribers[$i] : array();
     $nonSpecificSubscribers = array_key_exists(NULL, $this->subscribers) ? $this->subscribers[NULL] : array();
     return array_merge($directSubscribers, $nonSpecificSubscribers);
 }