79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.5 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 {
 | |
|       if (is_array($hclass)) {
 | |
|         $classes = $hclass;
 | |
|       } else {
 | |
|         $classes = array($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 */
 | |
| 
 |