879 lines
16 KiB
PHP
Raw Normal View History

2020-12-03 16:35:44 +01:00
<?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 &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 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;
}
//
// 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;
}
}
?>