23 require
CORE_PATH .
'libs/event/hook.php';
55 return isset(self::$_events[$event]) && count(self::$_events[$event]);
64 public static function bind($event, $handler)
66 if (!isset(self::$_events[$event])) {
67 self::$_events[$event] = array();
69 self::$_events[$event][] = $handler;
79 public static function before($event, $handler1, $handler2)
81 if (!isset(self::$_events[$event])) {
82 self::$_events[$event] = array();
84 $i = array_search($handler1, self::$_events[$event]);
86 self::$_events[$event][] = $handler2;
88 array_splice(self::$_events[$event], $i, 0, $handler2);
99 public static function after($event, $handler1, $handler2)
101 if (!isset(self::$_events[$event])) {
102 self::$_events[$event] = array();
104 $i = array_search($handler1, self::$_events[$event]);
106 self::$_events[$event][] = $handler2;
108 array_splice(self::$_events[$event], $i + 1, 0, $handler2);
118 public static function unbind($event, $handler=
false)
120 if ($handler && isset(self::$_events[$event])) {
121 $i = array_search($handler, self::$_events[$event]);
123 unset(self::$_events[$event][$i]);
125 self::$_events[$event] = array();
136 public static function replace($event, $handler1, $handler2)
138 if (isset(self::$_events[$event])) {
139 $i = array_search($handler1, self::$_events[$event]);
141 self::$_events[$event][$i] = $handler2;
155 public static function trigger($event, $args = array())
158 if (isset(self::$_events[$event])) {
159 foreach (self::$_events[$event] as $handler) {
160 $value = call_user_func_array($handler, $args);