<?php

/**------------------------------------------------
*
* Rooty, 2018 <rooty@rooty.me>
*
*
* This software is protected by copyright, please
* read the file COPYRIGHT.
* 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. Please
* read the file LICENCE.
*
* Fichier GroupManager.php
*
* Ce fichier contient la classe GroupManager
*
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2004/06/05
* @version 0.3
* @package system_data
* @subpackage Group
* @copyright Copyright &copy; 2009-2018, Rooty
*/

#####################################################################################################
################################# Parametrage
#####################################################################################################

/**
* declaration du system... si cette variable n'est pas définie, les fichier inclus ne marche pas...
* cette variable est déclarée sur la page d'execution du script.
* <p> if ( !defined('SYSTEM_IN') )
* {
* die("Hacking attempt");
* }</p>
*/
if ( !defined('SYSTEM_IN') )
{
 die("Hacking attempt");
}


/**
* Classe Manager
*
* <P>Classe de gestion des instances<br>
*   (permet de fabriquer, detruire, mettre à jour des objet Groups)<br>
* Cette classe se sert des ressources à sa disposition (dans ./ressource)<br>
* Les Classes de ressource doivent avoir toutes les methodes correspondantes <br>
* aux methodes de la classe intitulés sourceXXX</P>
*
* <p>Est configuré dans data_acces.php : <br>
* - La Source d'information (Db)<br>
* l'objet ressource se sert lui-même des classes d'accés aux données(lib/data_source/...)<br>
* </p>
* @package system_data
* @subpackage Model
*/
class Manager
{

	//
	// Constructor
	//
/**
* Constructeur de la classe GroupManager PHP5
*
* @access public
*/
	function __construct()
	{
	}

/**
* getSqlName : recupere le nom du champ a partir d'une cle
*
* <p>Cette méthode ne sert à priori que pour les extentions de type managerdb</p>
* <p>En fonction de la version sql, on trouvera ici la correspondance entre le nom attribut de l'objet et son nom en BD<br/>
* Cette methode permet de garder la compatibilite avec les version précédentes<br/>
* Elle s'appuie sur le tableau associatif $this->sqlAttributArray genere par initSqlAttributArray</p>
* @param chaine nom de l'attribut recherche
* @access private
* @return chaine nom du champ sql
*/
	function getSqlName($attribut)
	{
		return ( $this->sqlAttributArray[$attribut] );
	}

/**
* CallSystemPlugin : Appel d'une methode plugin avec les args correspondants
*
* <p>Cette méthode ne sert à priori que pour les extentions de type managerdb</p>
* <p>En fonction de la version sql, on trouvera ici la correspondance entre le nom attribut de l'objet et son nom en BD<br/>
* Cette methode permet de garder la compatibilite avec les version précédentes<br/>
* Elle s'appuie sur le tableau associatif $this->sqlAttributArray genere par initSqlAttributArray</p>
* @param chaine nom de l'attribut recherche
* @access private
* @return chaine nom du champ sql
*/
	function CallSystemPlugin($methodName, $args)
	{
		foreach($GLOBALS["SYSTEM_PLUGIN"] as $Plugin)
		{
			$result=call_user_func( array(&$Plugin,$methodName), $args);
			if($result!=true)
			{	// ajout d'une erreur sys
				addError(3,get_class($Plugin), "Une erreur s'est produite lors de la maj ".$methodName, __line__, __file__);
			}
		}
		return true;
	}
}
?>
