First refonte des hooks pour en faire une classes a part entiere
This commit is contained in:
parent
3621480392
commit
2aeb58a614
|
@ -309,7 +309,6 @@ bureau/class/config_real.php -text
|
||||||
bureau/class/db_mysql.php -text
|
bureau/class/db_mysql.php -text
|
||||||
bureau/class/export_account.php -text
|
bureau/class/export_account.php -text
|
||||||
bureau/class/functions.php -text
|
bureau/class/functions.php -text
|
||||||
bureau/class/hooks.php -text
|
|
||||||
bureau/class/lang_env.php -text
|
bureau/class/lang_env.php -text
|
||||||
bureau/class/local.php -text
|
bureau/class/local.php -text
|
||||||
bureau/class/m_admin.php -text
|
bureau/class/m_admin.php -text
|
||||||
|
@ -318,6 +317,7 @@ bureau/class/m_bro.php -text
|
||||||
bureau/class/m_dom.php -text
|
bureau/class/m_dom.php -text
|
||||||
bureau/class/m_err.php -text
|
bureau/class/m_err.php -text
|
||||||
bureau/class/m_ftp.php -text
|
bureau/class/m_ftp.php -text
|
||||||
|
bureau/class/m_hooks.php -text
|
||||||
bureau/class/m_hta.php -text
|
bureau/class/m_hta.php -text
|
||||||
bureau/class/m_mail.php -text
|
bureau/class/m_mail.php -text
|
||||||
bureau/class/m_mem.php -text
|
bureau/class/m_mem.php -text
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
$Id: m_mysql.php,v 1.35 2005/12/18 09:51:32 cam.lafit Exp $
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
AlternC - Web Hosting System
|
|
||||||
Copyright (C) 2002 - 2010 by the AlternC Development Team.
|
|
||||||
http://alternc.org/
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Based on:
|
|
||||||
Valentin Lacambre's web hosting softwares: http://altern.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
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Original Author of file: Camille Lafitte
|
|
||||||
Purpose of file: Manage hook system.
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* MySQL user database management for AlternC.
|
|
||||||
* This class manage user's databases in MySQL, and user's MySQL accounts.
|
|
||||||
*
|
|
||||||
* @copyright AlternC-Team 2002-2005 http://alternc.org/
|
|
||||||
*/
|
|
||||||
class hooks {
|
|
||||||
|
|
||||||
private $dir_hook = '/var/alternc/bureau/hooks/';
|
|
||||||
private $plugins = array();
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/** Constructor
|
|
||||||
* hooks([$mid]) Constructeur de la classe hooks, ne fait rien pour le moment
|
|
||||||
*/
|
|
||||||
function hooks() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* execute un hook determiné
|
|
||||||
*/
|
|
||||||
function invoke() {
|
|
||||||
$args = func_get_args();
|
|
||||||
$name = $args[0];
|
|
||||||
$data = $args[1];
|
|
||||||
$this->load_hooks();
|
|
||||||
return $this->run_hook($name,$data);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* charge l'ensemble des hooks disponibles
|
|
||||||
* pas de gestion de cache, on charge tout à l'invocation
|
|
||||||
*/
|
|
||||||
private function load_hooks() {
|
|
||||||
$numargs = func_num_args();
|
|
||||||
if ($numargs <> 0)
|
|
||||||
return false;
|
|
||||||
$args = func_get_args();
|
|
||||||
if (!is_dir($this->dir_hook))
|
|
||||||
return false;
|
|
||||||
foreach(scandir($this->dir_hook) as $file) {
|
|
||||||
if ($file === '.' || $file === '..')
|
|
||||||
continue;
|
|
||||||
$this->plugins[] = basename($file,'.php');
|
|
||||||
include($this->dir_hook.$file);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* charge l'ensemble des fonctions disponible pour un hook donné
|
|
||||||
*/
|
|
||||||
private function run_hook() {
|
|
||||||
$output = '';
|
|
||||||
$numargs = func_num_args();
|
|
||||||
if ($numargs <> 2)
|
|
||||||
return false;
|
|
||||||
$args = func_get_args();
|
|
||||||
$hook = $args[0];
|
|
||||||
foreach($this->plugins as $plugin) {
|
|
||||||
if (function_exists($plugin."_".$hook))
|
|
||||||
$output .= call_user_func_array($plugin."_".$hook,array($args[1]));
|
|
||||||
}
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
} /* Class hooks */
|
|
||||||
|
|
||||||
?>
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
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
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
Original Author of file: Camille Lafitte
|
||||||
|
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() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* run_hook()
|
||||||
|
* $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 */
|
||||||
|
|
||||||
|
?>
|
Loading…
Reference in New Issue