예제 #1
0
파일: hook.php 프로젝트: Esleelkartea/arotz
 function call($hookname, $param)
 {
     global $hook_status;
     if (!$hook_status) {
         return;
     }
     global $hook;
     global $globalhook;
     debug($this, "<b>Calling hook " . $hookname . " with parameter " . $param->toString() . "</b>");
     if (is_array($hook[$hookname])) {
         $ho = $hook[$hookname];
         for ($i = 0; $i < count($ho); $i++) {
             if (hook::allowHook($hookname, $ho[$i]["class"])) {
                 debug($this, "<font color=\"magenta\">Calling hook listener <b>" . $ho[$i]["class"] . "->" . $ho[$i]["method"] . "()</b></font>");
                 assert($param);
                 $o = new $ho[$i]["class"]();
                 $o->drop($param);
                 $method = $ho[$i]["method"];
                 $o->{$method}();
             } else {
                 debug($this, "<b style=\"color:rgb(255,0,0);\">Calling Denied for hook " . $hookname . " with parameter " . $param->toString() . "</b>");
             }
         }
     }
     for ($i = 0; $i < count($globalhook); $i++) {
         $o = new $globalhook[$i]["class"]();
         $o->drop($param);
         $method = $globalhook[$i]["method"];
         $o->{$method}($hookname);
     }
 }