From 5e1c6fd73465e9c5d963e1c57ef3a8ddec49e25d Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Mon, 27 Dec 2004 15:01:31 +0000 Subject: [PATCH] fucking overload git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-144 --- hooks/banana.inc.php | 8 +++----- hooks/emails.inc.php | 4 ++-- hooks/lists.inc.php | 6 +++--- hooks/money.inc.php | 4 ++-- hooks/newsletter.inc.php | 8 +++----- hooks/search.inc.php | 4 ++-- hooks/skin.inc.php | 2 +- hooks/tmp.inc.php | 2 +- hooks/webredirect.inc.php | 2 +- include/xorg/hook.inc.php | 39 ++++++++++++++++++--------------------- 10 files changed, 36 insertions(+), 43 deletions(-) diff --git a/hooks/banana.inc.php b/hooks/banana.inc.php index 5a58492..eae18dd 100644 --- a/hooks/banana.inc.php +++ b/hooks/banana.inc.php @@ -36,7 +36,7 @@ class BananaConfig // }}} -function banana_config(&$return) +function banana_config() { global $globals; $globals->banana = new BananaConfig; @@ -45,7 +45,7 @@ function banana_config(&$return) // }}} // {{{ menu HOOK -function &banana_menu(&$result) +function &banana_menu() { global $globals; $globals->menu->addPrivateEntry(XOM_SERVICES, 10, 'Forums & PA', 'banana/'); @@ -54,7 +54,7 @@ function &banana_menu(&$result) // }}} // {{{ subscribe HOOK -function &banana_subscribe($forlife, $uid, $promo, $password, &$result) +function &banana_subscribe($forlife, $uid, $promo, $password) { global $globals; @@ -84,8 +84,6 @@ function &banana_subscribe($forlife, $uid, $promo, $password, &$result) FROM forums.list WHERE nom='$val'"); } - - return ($result = true); } // }}} diff --git a/hooks/emails.inc.php b/hooks/emails.inc.php index 88f3ef4..464c96f 100644 --- a/hooks/emails.inc.php +++ b/hooks/emails.inc.php @@ -45,7 +45,7 @@ class MailConfig // }}} -function emails_config(&$return) +function emails_config() { global $globals; $globals->mail = new MailConfig; @@ -53,7 +53,7 @@ function emails_config(&$return) // }}} // {{{ menu HOOK -function emails_menu(&$return) +function emails_menu() { global $globals; $globals->menu->addPrivateEntry(XOM_CUSTOM, 00, 'Mes emails', 'emails.php'); diff --git a/hooks/lists.inc.php b/hooks/lists.inc.php index 29b34c7..ec87d1a 100644 --- a/hooks/lists.inc.php +++ b/hooks/lists.inc.php @@ -35,7 +35,7 @@ class ListsConfig // }}} -function lists_config(&$result) +function lists_config() { global $globals; $globals->lists = new ListsConfig; @@ -44,7 +44,7 @@ function lists_config(&$result) // }}} // {{{ menu HOOK -function &lists_menu(&$result) +function &lists_menu() { global $globals; $globals->menu->addPrivateEntry(XOM_SERVICES, 20, 'Listes de diffusion', 'listes/'); @@ -53,7 +53,7 @@ function &lists_menu(&$result) // }}} // {{{ subscribe HOOK -function &lists_subscribe($forlife, $uid, $promo, $password, &$result) +function &lists_subscribe($forlife, $uid, $promo, $password) { require_once('lists.inc.php'); diff --git a/hooks/money.inc.php b/hooks/money.inc.php index 68f616b..ea22789 100644 --- a/hooks/money.inc.php +++ b/hooks/money.inc.php @@ -33,7 +33,7 @@ class MoneyConfig // }}} -function money_config(&$result) +function money_config() { global $globals; $globals->money = new MoneyConfig; @@ -43,7 +43,7 @@ function money_config(&$result) // {{{ menu HOOK -function money_menu(&$result) +function money_menu() { global $globals; if ($globals->money->mpay_enable) { diff --git a/hooks/newsletter.inc.php b/hooks/newsletter.inc.php index 74ff5d1..b062108 100644 --- a/hooks/newsletter.inc.php +++ b/hooks/newsletter.inc.php @@ -31,7 +31,7 @@ class NLConfig // }}} -function newsletter_config(&$return) { +function newsletter_config() { global $globals; $globals->newsletter = new NLConfig; } @@ -39,7 +39,7 @@ function newsletter_config(&$return) { // }}} // {{{ menu HOOK -function &newsletter_menu(&$result) +function &newsletter_menu() { global $globals; $globals->menu->addPrivateEntry(XOM_INFOS, 0, 'Lettres mensuelles', 'newsletter/'); @@ -48,12 +48,10 @@ function &newsletter_menu(&$result) // }}} // {{{ subscribe HOOK -function &newsletter_subscribe($forlife, $uid, $promo, $password, &$result) +function &newsletter_subscribe($forlife, $uid, $promo, $password) { require_once('newsletter.inc.php'); subscribe_nl(true,$uid); - - return ($result = true); } // }}} diff --git a/hooks/search.inc.php b/hooks/search.inc.php index 3afd501..c82889f 100644 --- a/hooks/search.inc.php +++ b/hooks/search.inc.php @@ -33,7 +33,7 @@ class SearchConfig // }}} -function search_search(&$result) +function search_config() { global $glabals; $globals->search = new SearchConfig; @@ -42,7 +42,7 @@ function search_search(&$result) // }}} // {{{ menu HOOK -function search_menu(&$result) +function search_menu() { global $globals; $globals->menu->addPrivateEntry(XOM_GROUPS, 00, 'Annuaire', 'search.php'); diff --git a/hooks/skin.inc.php b/hooks/skin.inc.php index ad77b7b..c3d92ad 100644 --- a/hooks/skin.inc.php +++ b/hooks/skin.inc.php @@ -32,7 +32,7 @@ class SkinConfig // }}} -function skin_config(&$result) +function skin_config() { global $globals; $globals->skin = new SkinConfig; diff --git a/hooks/tmp.inc.php b/hooks/tmp.inc.php index 7eedb8b..8451ba7 100644 --- a/hooks/tmp.inc.php +++ b/hooks/tmp.inc.php @@ -1,6 +1,6 @@ menu->addPrivateEntry(XOM_NO, 10, 'Page d\'accueil', 'login.php'); diff --git a/hooks/webredirect.inc.php b/hooks/webredirect.inc.php index 9943dd3..c49fe49 100644 --- a/hooks/webredirect.inc.php +++ b/hooks/webredirect.inc.php @@ -30,7 +30,7 @@ class WebRedirConfig // }}} -function webredirect_config(&$result) +function webredirect_config() { global $globals; $globals->webredirect = new WebRedirConfig; diff --git a/include/xorg/hook.inc.php b/include/xorg/hook.inc.php index df358f4..4c46da9 100644 --- a/include/xorg/hook.inc.php +++ b/include/xorg/hook.inc.php @@ -74,38 +74,35 @@ class XOrgHook } // }}} - // {{{ function __call() + // {{{ function config - /** - * The overload helper for function calls. - * - * @param callback $function the name of the function called - * @param array $arguments the array of the arguments - * @param mixed $return a reference to place the result of the called function - * @retuns mixed returns the folded value - * f1(arg_1,...,arg_n-1, f2(arg1,...,arg_n-1, ... f_k(arg1,...arg_n))...) - * @see overload - */ - function __call($function, $arguments, &$return) + function config() { - if ( ($i = count($arguments) - 1) < 0) { - $this->raiseError("The hook « $function » expects at least 1 argument"); + foreach ($this->_mods as $mod) { + if (!function_exists($mod.'_config')) continue; + call_user_func($mod.'_config'); } + } + + function menu() + { foreach ($this->_mods as $mod) { - if (!function_exists($mod.'_'.$function)) continue; - $arguments[$i] =& call_user_func_array($mod.'_'.$function,$arguments); + if (!function_exists($mod.'_menu')) continue; + call_user_func($mod.'_menu'); } + } - $return =& $arguments[$i]; - - return true; + 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)); + } } // }}} } -overload('XOrgHook'); - // }}} // vim:set et sw=4 sts=4 sws=4 foldmethod=marker: -- 2.1.4