919 lines
16 KiB
PHP
Executable File
919 lines
16 KiB
PHP
Executable File
<?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 Plugin.php
|
|
*
|
|
*Ce fichier contient la classe Plugin
|
|
*
|
|
* @author Rooty <www.rooty.me|rooty@rooty.me>
|
|
* @link www.rooty.me
|
|
* @since 2004/04/14
|
|
* @version 0.3
|
|
* @package system_plugin
|
|
* @copyright Copyright © 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 Plugin
|
|
*
|
|
*<p>Cette classe a pour but d'être étendue et sert à ajouter des fonctionalitées aux system<br><br>
|
|
* Les classe plugin doivent être placés dans lib/plugin pour être prise en compte
|
|
*</p>
|
|
* @package system_plugin
|
|
*/
|
|
class Plugin
|
|
{
|
|
/**
|
|
* @access private
|
|
* @var chaine
|
|
* @desc version du plugin
|
|
*/
|
|
var $version = null;
|
|
|
|
/**
|
|
* @access private
|
|
* @var chaine
|
|
* @desc auteur du plugin
|
|
*/
|
|
var $autor = null;
|
|
|
|
/**
|
|
* @access private
|
|
* @var chaine
|
|
* @desc commentaires liès aux plugin
|
|
*/
|
|
var $comment = null;
|
|
|
|
//
|
|
// Constructor
|
|
//
|
|
|
|
/**
|
|
* Constructeur de la classe Plugin
|
|
* @access public
|
|
*/
|
|
function __construct($version, $autor, $comment)
|
|
{
|
|
$this->setVersion($version);
|
|
$this->setAutor($autor);
|
|
$this->setComment($comment);
|
|
}
|
|
|
|
/**
|
|
* getVersion : récupere le version du plugin
|
|
* @access public
|
|
* @return chaine
|
|
*/
|
|
function getVersion()
|
|
{
|
|
return $this->version;
|
|
}
|
|
|
|
/**
|
|
* setVersion : affecte la version du plugin
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function setVersion($version)
|
|
{
|
|
$this->version=$version;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* getAutor : Récupere l'auteur
|
|
* @access public
|
|
* @return chaine
|
|
*/
|
|
function getAutor()
|
|
{
|
|
return $this->autor;
|
|
}
|
|
|
|
/**
|
|
* setAutor : affecte l'auteur
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function setAutor($autor)
|
|
{
|
|
$this->autor=$autor;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* getComment : Récupere les commentaires
|
|
* @access public
|
|
* @return chaine
|
|
*/
|
|
function getComment()
|
|
{
|
|
return $this->comment;
|
|
}
|
|
|
|
/**
|
|
* setComment : affecte les commentaires
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function setComment($comment)
|
|
{
|
|
$this->comment=$comment;
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Méthodes executées sur chaque pages pour tous les plugins et a divers moment dans l'execution d'une page
|
|
//
|
|
|
|
/**
|
|
* __beforeSessionStart : methode executée avant que la session commence
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée avant l'initialisation du system</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __beforeSessionStart()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __beforeProcess : methode executée avant que le system ne soit executé
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée avant l'execution system</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __beforeProcess()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __beforeExec : methode executée avant que l'objet de coordination ne soit appele
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée avant l'execution de l'objet de coordination</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __beforeExec()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __afterExec : methode executée aprés l'execution de l'objet de coordination
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée aprés l'execution de l'objet de coordination</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __afterExec()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __afterProcess : methode executée après que le system ne soit executé
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée après l'execution system (et avant l'envoi de la page!)</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __afterProcess()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __beforeSessionClose : methode executée après que le system ne soit executé
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée après l'execution system et avant la fermeture de la session</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __beforeSessionClose()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Evenementiel sur la partie systéme
|
|
//
|
|
// Permet d'interagir avec les modifications systeme
|
|
|
|
//
|
|
// CoordinationObject
|
|
//
|
|
|
|
/**
|
|
* __insertCoordinationObj : methode apres ajout d'un objet de coordination
|
|
* @abstract
|
|
* @access public
|
|
* @param object CoordinationObj
|
|
* @return booleen
|
|
*/
|
|
function __insertCoordinationObj($CoordinationObj)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateCoordinationObj : methode apres modification d'un objet de coordination
|
|
* @abstract
|
|
* @access public
|
|
* @param object CoordinationObj
|
|
* @return booleen
|
|
*/
|
|
function __updateCoordinationObj($CoordinationObj)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteCoordinationObj : methode avant suppression d'un objet de coordination
|
|
* @abstract
|
|
* @access public
|
|
* @param object CoordinationObj
|
|
* @return booleen
|
|
*/
|
|
function __deleteCoordinationObj($CoordinationObj)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Utilisateur
|
|
//
|
|
|
|
/**
|
|
* __insertUser : methode apres ajout d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object User
|
|
* @return booleen
|
|
*/
|
|
function __insertUser($User)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateUser : methode apres modification d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object User
|
|
* @return booleen
|
|
*/
|
|
function __updateUser($User)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteUser : methode avant suppression d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object User
|
|
* @return booleen
|
|
*/
|
|
function __deleteUser($User)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Groupe
|
|
//
|
|
|
|
/**
|
|
* __insertGroup : methode apres ajout d'un groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object Group
|
|
* @return booleen
|
|
*/
|
|
function __insertGroup($Group)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateGroup : methode apres modification d'un groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object Group
|
|
* @return booleen
|
|
*/
|
|
function __updateGroup($Group)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteGroup : methode avant suppression d'un groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object Group
|
|
* @return booleen
|
|
*/
|
|
function __deleteGroup($Group)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Noeud de navigation
|
|
//
|
|
|
|
/**
|
|
* __insertNode : methode apres ajout d'un noeud de navigation
|
|
* @abstract
|
|
* @access public
|
|
* @param object Node
|
|
* @return booleen
|
|
*/
|
|
function __insertNode($Node)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateNode : methode apres modification d'un noeud de navigation
|
|
* @abstract
|
|
* @access public
|
|
* @param object Node
|
|
* @return booleen
|
|
*/
|
|
function __updateNode($Node)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteNode : methode avant suppression d'un noeud de navigation
|
|
* @abstract
|
|
* @access public
|
|
* @param object Node
|
|
* @return booleen
|
|
*/
|
|
function __deleteNode($Node)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// NodeSettings
|
|
//
|
|
|
|
/**
|
|
* __insertNodeSettings : methode apres ajout d'un nodesettings
|
|
* @abstract
|
|
* @access public
|
|
* @param object NodeSettings
|
|
* @return booleen
|
|
*/
|
|
function __insertNodeSettings($Node)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateNodeSettings : methode apres modification d'un nodesettings
|
|
* @abstract
|
|
* @access public
|
|
* @param object NodeSettings
|
|
* @return booleen
|
|
*/
|
|
function __updateNodeSettings($Node)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteNodeSettings : methode avant suppression d'un nosesettings
|
|
* @abstract
|
|
* @access public
|
|
* @param object NodeSettings
|
|
* @return booleen
|
|
*/
|
|
function __deleteNodeSettings($Node)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
//
|
|
// Language
|
|
//
|
|
|
|
/**
|
|
* __insertLanguage : methode apres ajout d'une langue
|
|
* @abstract
|
|
* @access public
|
|
* @param object Language
|
|
* @return booleen
|
|
*/
|
|
function __insertLanguage($Language)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateLanguage : methode apres modification d'une langue
|
|
* @abstract
|
|
* @access public
|
|
* @param object Language
|
|
* @return booleen
|
|
*/
|
|
function __updateLanguage($Language)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteLanguage : methode avant suppression d'une langue
|
|
* @abstract
|
|
* @access public
|
|
* @param object Language
|
|
* @return booleen
|
|
*/
|
|
function __deleteLanguage($Language)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Preferences utilisateur
|
|
//
|
|
|
|
/**
|
|
* __insertUserPreference : methode apres ajout d'une preferences utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object UserPreference
|
|
* @return booleen
|
|
*/
|
|
function __insertUserPreference($UserPreference)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateUserPreference : methode apres modification d'une preferences utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object UserPreference
|
|
* @return booleen
|
|
*/
|
|
function __updateUserPreference($UserPreference)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteUserPreference : methode avant suppression d'une preferences utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object UserPreference
|
|
* @return booleen
|
|
*/
|
|
function __deleteUserPreference($UserPreference)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Session utilisateur
|
|
//
|
|
|
|
/**
|
|
* __insertUserSession : methode apres ajout d'une session utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object UserSession
|
|
* @return booleen
|
|
*/
|
|
function __insertUserSession($UserSession)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateUserSession : methode apres modification d'une session utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object UserSession
|
|
* @return booleen
|
|
*/
|
|
function __updateUserSession($UserSession)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteUserSession : methode avant suppression d'une session utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object UserSession
|
|
* @return booleen
|
|
*/
|
|
function __deleteUserSession($UserSession)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
//
|
|
// Dependance entre les objets principaux
|
|
//
|
|
|
|
//
|
|
// Droit (association entre noeud / utilisateur ou groupe / object de coordination
|
|
//
|
|
|
|
/**
|
|
* __insertRight : methode apres ajout d'un droit
|
|
* @abstract
|
|
* @access public
|
|
* @param object Right
|
|
* @return booleen
|
|
*/
|
|
function __insertRight($Right)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateRight : methode apres modification d'un droit
|
|
* @abstract
|
|
* @access public
|
|
* @param object Right
|
|
* @return booleen
|
|
*/
|
|
function __updateRight($Right)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteRight : methode avant suppression d'un droit
|
|
* @abstract
|
|
* @access public
|
|
* @param object Right
|
|
* @return booleen
|
|
*/
|
|
function __deleteRight($Right)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// GroupUser
|
|
//
|
|
|
|
/**
|
|
* __insertGroupUser : methode apres ajout d'une association goupe et utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object GroupUser
|
|
* @return booleen
|
|
*/
|
|
function __insertGroupUser($GroupUser)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateGroupUser : methode apres modification d'une association goupe et utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object GroupUser
|
|
* @return booleen
|
|
*/
|
|
function __updateGroupUser($GroupUser)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteGroupUser : methode avant suppression d'une association goupe et utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object GroupUser
|
|
* @return booleen
|
|
*/
|
|
function __deleteGroupUser($GroupUser)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// NodeGroupUser
|
|
//
|
|
|
|
/**
|
|
* __insertNodeGroupUser : methode apres ajout d'une association noeud et goupe ou utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object NodeGroupUser
|
|
* @return booleen
|
|
*/
|
|
function __insertNodeGroupUser($NodeGroupUser)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateNodeGroupUser : methode apres modification d'une association noeud et goupe ou utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object NodeGroupUser
|
|
* @return booleen
|
|
*/
|
|
function __updateNodeGroupUser($NodeGroupUser)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteNodeGroupUser : methode avant suppression d'une association noeud et goupe ou utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object NodeGroupUser
|
|
* @return booleen
|
|
*/
|
|
function __deleteNodeGroupUser($NodeGroupUser)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Element de cache systeme
|
|
//
|
|
|
|
//
|
|
// TreeGroup (arbre de groupes)
|
|
//
|
|
|
|
/**
|
|
* __addTreeGroup : methode apres ajout d'un arbre de groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeGroup
|
|
* @return booleen
|
|
*/
|
|
function __insertTreeGroup($TreeGroup)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateTreeGroup : methode apres modification d'un arbre de groupe
|
|
* n'est pas utilisé actuellement.
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeGroup
|
|
* @return booleen
|
|
*/
|
|
function __updateTreeGroup($TreeGroup)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteTreeGroup : methode avant suppression d'un arbre de groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeGroup
|
|
* @return booleen
|
|
*/
|
|
function __deleteTreeGroup($TreeGroup)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// TreeNode (arbre de Noeuds)
|
|
//
|
|
|
|
/**
|
|
* __insertTreeNode : methode apres ajout d'un arbre de groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeNode
|
|
* @return booleen
|
|
*/
|
|
function __insertTreeNode($TreeNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateTreeNode : methode apres modification d'un arbre de groupe
|
|
* n'est pas utilisé actuellement.
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeNode
|
|
* @return booleen
|
|
*/
|
|
function __updateTreeNode($TreeNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteTreeNode : methode avant suppression d'un arbre de groupe
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeNode
|
|
* @return booleen
|
|
*/
|
|
function __deleteTreeNode($TreeNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
//
|
|
// ListUserGroup (arbres de groupes pour un utilisateur)
|
|
//
|
|
|
|
/**
|
|
* __insertListUserGroup : methode apres ajout du cache des groupes d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object ListUserGroup
|
|
* @return booleen
|
|
*/
|
|
function __insertListUserGroup($ListUserGroup)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateListUserGroup : methode apres modification du cache des groupes d'un utilisateur
|
|
* n'est pas utilisé actuellement.
|
|
* @abstract
|
|
* @access public
|
|
* @param object ListUserGroup
|
|
* @return booleen
|
|
*/
|
|
function __updateListUserGroup($ListUserGroup)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteListUserGroup : methode avant suppression du cache des groupes d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object ListUserGroup
|
|
* @return booleen
|
|
*/
|
|
function __deleteListUserGroup($ListUserGroup)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// ListUserNode (arbres de navigation pour un utilisateur)
|
|
//
|
|
|
|
/**
|
|
* __insertListUserNode : methode apres ajout du cache de navigation d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object ListUserNode
|
|
* @return booleen
|
|
*/
|
|
function __insertListUserNode($ListUserNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updateListUserNode : methode apres modification du cache de navigation d'un utilisateur
|
|
* n'est pas utilisé actuellement.
|
|
* @abstract
|
|
* @access public
|
|
* @param object ListUserNode
|
|
* @return booleen
|
|
*/
|
|
function __updateListUserNode($ListUserNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deleteListUserNode : methode avant suppression du cache de navigation d'un utilisateur
|
|
* @abstract
|
|
* @access public
|
|
* @param object ListUserNode
|
|
* @return booleen
|
|
*/
|
|
function __deleteListUserNode($ListUserNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
// Permission (ensemble des droits d'un utilisateur)
|
|
//
|
|
|
|
/**
|
|
* __insertPermission : methode apres ajout d'un objet permission
|
|
* @abstract
|
|
* @access public
|
|
* @param object TreeNode
|
|
* @return booleen
|
|
*/
|
|
function __insertPermission($Permission)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __updatePermission : methode apres modification d'un objet permission
|
|
* n'est pas utilisé actuellement.
|
|
* @abstract
|
|
* @access public
|
|
* @param object Permission
|
|
* @return booleen
|
|
*/
|
|
function __updatePermission($Permission)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* __deletePermission : methode avant suppression d'un objet permission
|
|
* @abstract
|
|
* @access public
|
|
* @param object Permission
|
|
* @return booleen
|
|
*/
|
|
function __deletePermission($Permission)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* __getInfo : methode executée après que le system ne soit executé
|
|
*<p>Cette methode à pour but d'être surchagée par le plugin<br>
|
|
*pour être executée lors de la demande d'information sur le plugin</p>
|
|
* @abstract
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function __getInfo()
|
|
{
|
|
$tab=array();
|
|
$tab["className"]=get_class($this);
|
|
$tab["version"] =$this->getVersion();
|
|
$tab["autor"] =$this->getAutor();
|
|
$tab["comment"] =$this->getComment();
|
|
return $tab;
|
|
}
|
|
}
|
|
?>
|