Actions
Plugin » Historique » Révision 11
« Précédent |
Révision 11/21
(diff)
| Suivant »
Julien Jocal, 02/01/2010 16:32
Quelques corrections
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 mod_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 structure 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¶
<?xml version="1.0" ?> <gepinstall type="plugin"> <nom>nom_du_plugin</nom> <creationDate>mois Année</creationDate> <auteur>Jean de la Courte</auteur> <licence>GNU/GPL</licence> <auteurCourriel>jdlc@gepi.com</auteurCourriel> <auteurSite>www.jdlc.fr</auteurSite> <version>1.0</version> <versiongepi>1.5.2</versiongepi> <description>Test de plugin</description> <installation> <requetes> <requete> 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> </requetes> </installation> <desinstallation> <requetes> <requete>DROP TABLE @test_plugin@;</requete> </requetes> </desinstallation> <administration> <fichier> <nomfichier autorisation="A-P-C-S-sec-E-R-autre">index.php</nomfichier> <nomfichier autorisation="A-S">fonctions_plugin.php</nomfichier> <nomfichier autorisation="P-C-autre">testeur_user.php</nomfichier> </fichier> <menu> <item autorisation="A" titre="Lister" description="Accéder au plugin TEST_PLUGIN">index.php</item> <item autorisation="P-C-autre" titre="Lister" description="Afficher la liste des utilisateurs testeurs">testeur_user.php</item> </menu> </administration> </gepinstall>
- Il est indispensable que chaque plugin de modifie pas pas les tables de GEPI autres que celles qu'il crée à son propre service.
- Il est également indispensable que la désinstallation du plugin remette GEPI dans l'état où il était avant l'activation du plugin.
- Dans le module plugin de l'administrateur, il peut installer le plugin sans forcément l'ouvrir.
- Le fichier XML ci-dessus est assez explicite sur les informations à donner à Gepi pour qu'il crée les bons droits dans les bonnes tables.
Des idées de plugins :¶
Ce n'est pas ce qui manque- La page blanche du PP pour chacun de ses élèves.
- La possibilité de changer de statut au cours d'une même session.
- Intégrer du code pour initialiser GEPI à partir d'un ENT (ou de toute autre source externe).
- Un lieu de réunion pour chaque équipe éducative qui pourrait ainsi laisser des infos avant un conseil ou pour aider celui qui prépare le conseil de classe.
- Un tchat d'échange entre professeurs.
- Bien d'autres idées, laissez vous aller :)
Mis à jour par Julien Jocal il y a plus de 15 ans · 11 révisions