Projet

Général

Profil

Actions

Plugin » Historique » Révision 9

« Précédent | Révision 9/21 (diff) | Suivant »
Anonyme, 23/06/2009 12:20


Ce module est en plein développement (page de travail)

= Coder son propre plugin pour Gepi =
- Chaque plugin sera stocké dans un répertoire qui porte son nom qui sera installé dans le répertoire plugins de Gepi. Le nom du répertoire ne devra comporter aucun point ni accent et les espaces seront remplacés par un tiret bas "_".
- Chaque plugin sera composé au minimum d'une page index.php et d'un fichier plugin.xml qui sera utilisé pour son installation.
- La gestion des droits sera contrôlée en interne par une méthode verifDroits() qui testera la table plugin_autorisations pour éviter l'écrasement des droits à chaque mise à jour.
- Il faudra regarder sur la gestion des sessions (la classe est dans /lib) pour permettre de ne pas tester la table droits
Contenu des fichiers des plugins
- Pour conserver un minimum de sécurité et une struture commune aux plugins, chaque fichier devra commencer par les vérifications d'usage : session, droits des utilisateurs et si le plugin est ouvert.
- Quelque chose comme cela sera proposé :
$niveau_arbo = "2";
// Initialisations files (Attention au chemin des fichiers en fonction de l'arborescence)
include("../../lib/initialisationsPropel.inc.php");
include("../../lib/initialisations.inc.php");
include("../plugins.class.php");

// Resume session
$resultat_session = $session_gepi->security_check();
if ($resultat_session == 'c') {
    header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
    die();
} else if ($resultat_session == '0') {
    header("Location: ../logout.php?auto=1");
    die();
}

// Il faut adapter cette ligne au statut des utilisateurs qui auront accès à cette page, par défaut des utilisateurs professionnels
$utilisateur = [[UtilisateurProfessionnelPeer]]::retrieveByLogin($_SESSION[[login]]);
$user_auth = new gepiPlugIn("nom_plugin");
$user_auth->verifDroits();
Struture du fichier xml

<gepinstall type="plugin">
<nom>nom_du_plugin</nom>

&lt;creationDate&gt;mois Année&lt;/creationDate&gt;
&lt;auteur&gt;Jean de la Courte&lt;/auteur&gt;
&lt;licence&gt;GNU/GPL&lt;/licence&gt;
&lt;auteurCourriel&gt;&lt;/auteurCourriel&gt;
&lt;auteurSite&gt;www.jdlc.fr&amp;lt;/auteurSite&gt;
&lt;version&gt;1.0&lt;/version&gt;
&lt;versiongepi&gt;1.5.2&lt;/versiongepi&gt;
&lt;description&gt;Test de plugin&lt;/description&gt;
&lt;installation&gt;
&lt;requetes&gt;
&lt;requete&gt;
CREATE TABLE IF NOT EXISTS test_plugin ( id int(11)
NOT NULL auto_increment, name varchar(100) NOT NULL
default _, PRIMARY KEY (id) )
TYPE=MyISAM;
</requete>
&lt;/requetes&gt;
&lt;/installation&gt;
&lt;desinstallation&gt;
&lt;requetes&gt;
&lt;requete&gt;DROP TABLE test_plugin;&lt;/requete&gt;
&lt;/requetes&gt;
&lt;/desinstallation&gt;
&lt;administration&gt;
&lt;fichier&gt;
&lt;nomfichier autorisation="A-P-C-S-sec-E-R-autre"&gt;index.php&lt;/nomfichier&gt;
&lt;nomfichier autorisation="A-S"&gt;fonctions_plugin.php&lt;/nomfichier&gt;
&lt;nomfichier autorisation="P-C-autre"&gt;testeur_user.php&lt;/nomfichier&gt;
&lt;/fichier&gt;
&lt;menu&gt;
&lt;item autorisation="A" titre="Lister" description="Accéder au plugin TEST_PLUGIN"&gt;index.php&lt;/item&gt;
&lt;item autorisation="P-C-autre" titre="Lister" description="Afficher la liste des utilisateurs testeurs"&gt;testeur_user.php&lt;/item&gt;
&lt;/menu&gt;
&lt;/administration&gt;

</gepinstall>

Mis à jour par il y a presque 15 ans · 9 révisions