Plugin » Historique » Version 6
Anonyme, 22/06/2009 08:21
1 | 1 | ''Ce module est en plein développement (page de travail)'' |
|
---|---|---|---|
2 | |||
3 | = '''Coder son propre plugin pour Gepi''' = |
||
4 | [[BR]] |
||
5 | [[BR]] |
||
6 | - Chaque plugin sera stocké dans un répertoire qui porte son nom qui sera installé dans le répertoire plugins de Gepi.[[BR]] |
||
7 | - Chaque plugin sera composé au minimum d'une page index.php et d'un fichier plugin.xml qui sera utilisé pour son installation.[[BR]] |
||
8 | 2 | - 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. |
|
9 | 1 | - Il faudra regarder sur la gestion des sessions (la classe est dans /lib) pour permettre de ne pas tester la table `droits` |
|
10 | [[BR]] |
||
11 | 4 | [[BR]] |
|
12 | == Contenu des fichiers des plugins == |
||
13 | [[BR]] |
||
14 | - 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]] |
||
15 | - Quelque chose comme cela sera proposé : [[BR]] |
||
16 | {{{ |
||
17 | $niveau_arbo = "2"; |
||
18 | // Initialisations files (Attention au chemin des fichiers en fonction de l'arborescence) |
||
19 | include("../../lib/initialisationsPropel.inc.php"); |
||
20 | include("../../lib/initialisations.inc.php"); |
||
21 | 6 | include("../plugins.class.php"); |
|
22 | 4 | ||
23 | // Resume session |
||
24 | $resultat_session = $session_gepi->security_check(); |
||
25 | if ($resultat_session == 'c') { |
||
26 | header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); |
||
27 | die(); |
||
28 | } else if ($resultat_session == '0') { |
||
29 | header("Location: ../logout.php?auto=1"); |
||
30 | die(); |
||
31 | } |
||
32 | |||
33 | // Il faut adapter cette ligne au statut des utilisateurs qui auront accès à cette page, par défaut des utilisateurs professionnels |
||
34 | $utilisateur = UtilisateurProfessionnelPeer::retrieveByLogin($_SESSION["login"]); |
||
35 | 5 | $user_auth = new gepiPlugIn("nom_plugin"); |
|
36 | 4 | $user_auth->verifDroits(); |
|
37 | }}} |
||
38 | [[BR]] |
||
39 | 1 | == Struture du fichier xml == |
|
40 | <?xml version="1.0" ?>[[BR]] |
||
41 | <gepinstall type="plugin"> |
||
42 | 2 | <nom>nom_du_plugin</nom>[[BR]] |
|
43 | <creationDate>mois Année</creationDate>[[BR]] |
||
44 | <auteur>Jean de la Courte</auteur>[[BR]] |
||
45 | <licence>GNU/GPL</licence>[[BR]] |
||
46 | <auteurCourriel>jdlc@gepi.com</auteurCourriel>[[BR]] |
||
47 | <auteurSite>www.jdlc.fr</auteurSite>[[BR]] |
||
48 | <version>1.0</version>[[BR]] |
||
49 | 3 | <versiongepi>1.5.2</versiongepi>[[BR]] |
|
50 | 2 | <description>Test de plugin</description>[[BR]] |
|
51 | [[BR]] |
||
52 | <installation>[[BR]] |
||
53 | <requetes>[[BR]] |
||
54 | <requete>[[BR]] |
||
55 | 1 | CREATE TABLE IF NOT EXISTS `test_plugin` ( `id` int(11) |
|
56 | NOT NULL auto_increment, `name` varchar(100) NOT NULL |
||
57 | default '', PRIMARY KEY (`id`) ) |
||
58 | TYPE=MyISAM; |
||
59 | 2 | </requete>[[BR]] |
|
60 | </requetes>[[BR]] |
||
61 | </installation>[[BR]] |
||
62 | <desinstallation>[[BR]] |
||
63 | <requetes>[[BR]] |
||
64 | <requete>DROP TABLE `test_plugin`;</requete>[[BR]] |
||
65 | </requetes>[[BR]] |
||
66 | </desinstallation>[[BR]] |
||
67 | 1 | [[BR]] |
|
68 | <administration>[[BR]] |
||
69 | <fichier>[[BR]] |
||
70 | <nomfichier autorisation="A-P-C-S-sec-E-R-autre">index.php</nomfichier>[[BR]] |
||
71 | <nomfichier autorisation="A-S">fonctions_plugin.php</nomfichier>[[BR]] |
||
72 | <nomfichier autorisation="P-C-autre">testeur_user.php</nomfichier>[[BR]] |
||
73 | </fichier>[[BR]] |
||
74 | <menu>[[BR]] |
||
75 | <item autorisation="A" titre="Accéder au plugin TEST_PLUGIN">index.php</item>[[BR]] |
||
76 | <item autorisation="P-C-autre" titre="Afficher la liste des utilisateurs testeurs">testeur_user.php</item>[[BR]] |
||
77 | </menu>[[BR]] |
||
78 | </administration>[[BR]] |
||
79 | [[BR]] |
||
80 | </gepinstall>[[BR]] |