97 lines
2.9 KiB
PHP
97 lines
2.9 KiB
PHP
|
<?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 */
|
||
|
|
||
|
?>
|