75 lines
2.4 KiB
PHP
75 lines
2.4 KiB
PHP
<?php
|
|
/*
|
|
----------------------------------------------------------------------
|
|
AlternC - Web Hosting System
|
|
Copyright (C) 2000-2012 by the AlternC Development Team.
|
|
https://alternc.org/
|
|
----------------------------------------------------------------------
|
|
LICENSE
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License (GPL)
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
To read the license please visit http://www.gnu.org/copyleft/gpl.html
|
|
----------------------------------------------------------------------
|
|
Purpose of file: Manage hook system.
|
|
----------------------------------------------------------------------
|
|
*/
|
|
|
|
/**
|
|
* This class manage hooks.
|
|
*
|
|
* @copyright AlternC-Team 2002-2005 http://alternc.org/
|
|
*/
|
|
class m_hooks {
|
|
|
|
/*---------------------------------------------------------------------------*/
|
|
/** Constructor
|
|
* hooks([$mid]) Constructeur de la classe hooks, ne fait rien pour le moment
|
|
*/
|
|
function m_hooks() {
|
|
}
|
|
|
|
/**
|
|
* invoke() permet de lancer une fonction donné en parametre dans toute les classes
|
|
* connues de alternc, avec les parametres donnés.
|
|
* $hname nom de la fonction "hooks" que l'on cherche dans les classes
|
|
* $hparam tableau contenant les parametres
|
|
* $hclass tableau contenant les classes spécifique qu'on veux appeler (si on veux pas TOUTE les appeler)
|
|
*/
|
|
function invoke($hname, $hparam = array(), $hclass = null) {
|
|
|
|
// Si $hclass est defini, on veut appeler le hooks QUE pour UNE
|
|
// classe et pas pour toute.
|
|
if (is_null($hclass)) {
|
|
global $classes;
|
|
} else {
|
|
$classes = $hclass;
|
|
}
|
|
|
|
// On parcourt les classes, si la fonction qu'on cherche
|
|
// existe on l'execute et on rajoute ce qu'elle a retourné dans
|
|
// un tableau
|
|
$val = array();
|
|
foreach ($classes as $c) {
|
|
global $$c;
|
|
if ( method_exists($$c, $hname) ) {
|
|
//$val[$$c]=call_user_func_array(array($$c,$hname), $hparam);
|
|
$val[$c]=call_user_func_array(array($$c,$hname), $hparam);
|
|
}
|
|
}
|
|
|
|
// On retourne le tout
|
|
return $val;
|
|
}
|
|
|
|
} /* Class hooks */
|
|
|