* @access public * @link http://doc.polytechnique.org/XOrgModule/#hook * @since Classe available since 0.9.3 */ class XOrgHook { // {{{ properties /** * list of all the modules names that have implemented some reactions to our triggers * * @var array * @access private */ var $_mods = Array(); // }}} // {{{ constructor XOrgHook() /** * Instanciates our Hook. * * @param string $name the name of the hook */ function XOrgHook() { global $globals; foreach (glob($globals->root."/hooks/*.inc.php") as $file) { require_once("$file"); $this->_mods[] = basename($file, '.inc.php'); } } // }}} // {{{ function config function config() { foreach ($this->_mods as $mod) { if (!function_exists($mod.'_config')) continue; call_user_func($mod.'_config'); } } // }}} // {{{ function menu function menu() { foreach ($this->_mods as $mod) { if (!function_exists($mod.'_menu')) continue; call_user_func($mod.'_menu'); } } // }}} // {{{ function subscribe function subscribe($forlife, $uid, $promo, $pass) { foreach ($this->_mods as $mod) { if (!function_exists($mod.'_subscribe')) continue; call_user_func($mod.'_subscribe', $forlife, $uid, $promo, $pass); } } // }}} // {{{ function prefs function prefs() { $res = Array(); foreach ($this->_mods as $mod) { if (!function_exists($mod.'_prefs')) continue; $res = array_merge($res, call_user_func($mod.'_prefs')); } usort($res, create_function('$a, $b', 'return strcmp($a["weight"], $b["weight"]);')); return $res; } // }}} } // }}} // vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?>