Projet

Général

Profil

Actions

Plugin » Historique » Révision 6

« Précédent | Révision 6/21 (diff) | Suivant »
Anonyme, 22/06/2009 08:21


''Ce module est en plein développement (page de travail)'' {{{
$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");

= '''Coder son propre plugin pour Gepi''' =
[[BR]]
[[BR]]
- Chaque plugin sera stocké dans un répertoire qui porte son nom qui sera installé dans le répertoire plugins de Gepi.[[BR]]
- Chaque plugin sera composé au minimum d'une page index.php et d'un fichier plugin.xml qui sera utilisé pour son installation.[[BR]]
- La gestion des droits sera contrôlée en interne par une méthode pluginAutorisationStatut() 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`
[[BR]]
[[BR]]
Contenu des fichiers des plugins
[[BR]]
- 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.[[BR]]
- Quelque chose comme cela sera proposé : [[BR]]

// 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();
}}}
BR
Struture du fichier xml
BR
<gepinstall type="plugin">
<nom>nom_du_plugin</nom>BR
<creationDate>mois Année</creationDate>BR
<auteur>Jean de la Courte</auteur>BR
<licence>GNU/GPL</licence>BR
<auteurCourriel></auteurCourriel>BR
<auteurSite>BR">www.jdlc.fr&lt;/auteurSite&gt;[[BR</a>
<version>1.0</version>BR
<versiongepi>1.5.2</versiongepi>BR
<description>Test de plugin</description>BR
BR
<installation>BR
<requetes>BR
<requete>BR
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>BR
</requetes>BR
</installation>BR
<desinstallation>BR
<requetes>BR
<requete>DROP TABLE `test_plugin`;</requete>BR
</requetes>BR
</desinstallation>BR
BR
<administration>BR
<fichier>BR
<nomfichier autorisation="A-P-C-S-sec-E-R-autre">index.php</nomfichier>BR
<nomfichier autorisation="A-S">fonctions_plugin.php</nomfichier>BR
<nomfichier autorisation="P-C-autre">testeur_user.php</nomfichier>BR
</fichier>BR
<menu>BR
<item autorisation="A" titre="Accéder au plugin TEST_PLUGIN">index.php</item>BR
<item autorisation="P-C-autre" titre="Afficher la liste des utilisateurs testeurs">testeur_user.php</item>BR
</menu>BR
</administration>BR
BR
</gepinstall>BR

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