$event_callback) { if ($callback === $event_callback) { unset(self::$events[$name][$i]); } } } } /** * Execute all of the callbacks attached to an event. * * @param string event name * @param array data can be processed as Event::$data by the callbacks * @return void */ public static function run($name, & $data = NULL) { if (! empty(self::$events[$name])) { // So callbacks can access Event::$data self::$data = & $data; $callbacks = self::get($name); foreach ($callbacks as $callback) { @Zeed_Loader::loadClass($callback); if (class_exists($callback)) { $o = new $callback(); if ($o instanceof Com_Application_Event_Abstract) { try { call_user_func(array( $o, self::$run_method_name)); } catch (Exception $e) { return; } } else { throw new Zeed_Exception('Hook must instance of Com_Application_Event_Abstract.'); } } } // Do this to prevent data from getting 'stuck' $clear_data = ''; self::$data = & $clear_data; } // The event has been run! self::$has_run[$name] = $name; } /** * Check if a given event has been run. * * @param string event name * @return boolean */ public static function hasRun($name) { return isset(self::$has_run[$name]); } } // End Event // End ^ Native EOL ^ encoding