Projet

Général

Profil

Plugin » Historique » Révision 5

Révision 4 (Anonyme, 21/06/2009 08:19) → Révision 5/21 (Anonyme, 21/06/2009 09:07)

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

  = '''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]] 
 {{{ 
 $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("../../lib/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"); gepiPlugIn(); 
 $user_auth->verifDroits(); 
 }}} 
 [[BR]] 
  == Struture du fichier xml == 
 <?xml version="1.0" ?>[[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>jdlc@gepi.com</auteurCourriel>[[BR]] 
	 <auteurSite>www.jdlc.fr</auteurSite>[[BR]] 
	 <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]]