16 define(
'HOOK_SEQUENCE_CORE', 0x000);
17 define(
'HOOK_SEQUENCE_NORMAL', 0x100);
18 define(
'HOOK_SEQUENCE_LATE', 0x200);
19 define(
'HOOK_SEQUENCE_LAST', 0x300);
32 if (isset($hooks[$hookName])) {
33 $hook =& $hooks[$hookName];
49 static function setHooks($hookName, $callbacks) {
51 $hooks[$hookName] =& $callbacks;
58 static function clear($hookName) {
60 unset($hooks[$hookName]);
70 static function register($hookName, $callback, $hookSequence = HOOK_SEQUENCE_NORMAL) {
72 $hooks[$hookName][$hookSequence][] =& $callback;
86 static function call($hookName, $args =
null) {
90 if (self::rememberCalledHooks(
true)) {
93 $calledHooks[] = array(
99 if (!isset($hooks[$hookName])) {
103 if (isset($hooks[$hookName])) {
104 ksort($hooks[$hookName], SORT_NUMERIC);
105 foreach ($hooks[$hookName] as $priority => $hookList) {
106 foreach ($hookList as $hook) {
107 if ($result = call_user_func($hook, $hookName, $args))
return true;
129 static $rememberCalledHooks =
false;
131 $rememberCalledHooks = $updateTo;
133 return $rememberCalledHooks;
146 $calledHooks = array();
154 static $calledHooks = array();