/**
* Gestion des plugins / Modules
*
* @version $Id$
* @copyright 2009
*/
/** Ducumentation Technique
*
* -----------------
* Ajout d'un module de la base des modules du site
* Class: module($name, $parent, $infos)
*
* Vous devez creer un objet module.
* Exemple: $Mon_Module = new module($name, $parent, $infos)
*
* ---- Liste des arguments
* --$name : Nom technique du module (doit être unique. Si un autre module
* veux être installé sous le nom d'un module déjà installé, alors le script
* demandera la désinstallation du module déjà présent. Le nom doit être un
* identifiant valide (voir http://php.net/language.variables).
*
* --$parent : Désigne le module parent dont dépends le plugin, ou si c'est la
* déclaration d'un module, alors il doit contenir son propre nom.
*
* --$infos : tableau associatif contenant les informations sur l'auteur, la
* version et la description du module.
*
* ---- Valeur de retour
* Une instance de la configuration du module. ATTENTION il ne faut surtout pas
* détruire l'objet sinon le module rique de ne pas pouvoir être appellé.
*
* ---------------------
* Défini l'ordre de chargement des modules
* Class: module
* Static Method: SetCouche()
*
* Défini l'ordre de chargement des modules.
*
* ---------------------
* Récupérer une liste des modules existant sur le site
* Class: module
* Static Method: ListMod()
*
* Permet de récupérer une liste des modules présents sur le site. Attention,
* cette liste comprend AUSSI les modules non installés.
*
* ---- Valeur de retour
* retourne un tableau de tous les modules / plugins qui se sont déclarés
*
* ----------------------
* Inclure un fichier de tous les répertoire des modules
* Class: module
* Static Method: GlobalInclude($file, $inst = TRUE)
*
* Permet de charger le fichier $file contenu dans chacun des répertoires des
* modules selon l'ordre défini par les dépendances.
*
* ---- Liste des arguments
* --$file : Non du fichier à inclure. Recherche dans tous les répertoires de
* module ce fichier et l'inclus s'il existe.
*
* --$inst (défaut: TRUE) : Si cette valeur est à TRUE alors ne recherche le
* fichier que dans les modules qui sont installés. Sinon recherche dans tous
* les modules du site.
*
* ----------------------
* Savoir si un module est installé ou non
* Class: module
* Static Method: Is_Installed($mod)
*
* ---- List des arguments
* --$mod : Nom technique d'un module dont on veux savoir s'il est installé ou
* non.
*
* ---- Valeur de retour
* Retourne TRUE si le module est installé, sinon FALSE.
* **/