Plugin » Historique » Version 12
Julien Jocal, 07/01/2010 09:15
Correction mineure
1 | 9 | _Ce module est en plein développement (page de travail)_ |
|
---|---|---|---|
2 | 1 | ||
3 | 10 | Julien Jocal | h1. Coder son propre plugin pour Gepi |
4 | 9 | ||
5 | 1 | ||
6 | 11 | Julien Jocal | * 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 "_". |
7 | 1 | ||
8 | 10 | Julien Jocal | * Chaque plugin sera composé au minimum d'une page index.php et d'un fichier plugin.xml qui sera utilisé pour son installation. |
9 | 1 | ||
10 | 10 | Julien Jocal | * 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. |
11 | * Il faudra regarder sur la gestion des sessions (la classe est dans /lib) pour permettre de ne pas tester la table @droits@ |
||
12 | 4 | ||
13 | 10 | Julien Jocal | h2. Contenu des fichiers des plugins |
14 | 9 | ||
15 | |||
16 | 11 | Julien Jocal | * 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. |
17 | 9 | ||
18 | 10 | Julien Jocal | * Quelque chose comme cela sera proposé : |
19 | 9 | ||
20 | <pre> |
||
21 | 1 | $niveau_arbo = "2"; |
|
22 | // Initialisations files (Attention au chemin des fichiers en fonction de l'arborescence) |
||
23 | include("../../lib/initialisationsPropel.inc.php"); |
||
24 | include("../../lib/initialisations.inc.php"); |
||
25 | include("../plugins.class.php"); |
||
26 | |||
27 | // Resume session |
||
28 | $resultat_session = $session_gepi->security_check(); |
||
29 | if ($resultat_session == 'c') { |
||
30 | header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); |
||
31 | die(); |
||
32 | } else if ($resultat_session == '0') { |
||
33 | header("Location: ../logout.php?auto=1"); |
||
34 | die(); |
||
35 | } |
||
36 | |||
37 | // Il faut adapter cette ligne au statut des utilisateurs qui auront accès à cette page, par défaut des utilisateurs professionnels |
||
38 | 12 | Julien Jocal | $utilisateur = UtilisateurProfessionnelPeer::retrieveByPk($_SESSION["login"]); |
39 | 1 | $user_auth = new gepiPlugIn("nom_plugin"); |
|
40 | 9 | $user_auth->verifDroits(); |
|
41 | 1 | </pre> |
|
42 | |||
43 | 9 | ||
44 | 10 | Julien Jocal | h2. Struture du fichier xml |
45 | |||
46 | <pre> |
||
47 | 9 | <?xml version="1.0" ?> |
|
48 | |||
49 | 1 | <gepinstall type="plugin"> |
|
50 | 9 | <nom>nom_du_plugin</nom> |
|
51 | |||
52 | <creationDate>mois Année</creationDate> |
||
53 | |||
54 | <auteur>Jean de la Courte</auteur> |
||
55 | |||
56 | <licence>GNU/GPL</licence> |
||
57 | |||
58 | <auteurCourriel>jdlc@gepi.com</auteurCourriel> |
||
59 | |||
60 | <auteurSite>www.jdlc.fr</auteurSite> |
||
61 | |||
62 | <version>1.0</version> |
||
63 | |||
64 | <versiongepi>1.5.2</versiongepi> |
||
65 | |||
66 | <description>Test de plugin</description> |
||
67 | |||
68 | |||
69 | |||
70 | <installation> |
||
71 | |||
72 | <requetes> |
||
73 | |||
74 | <requete> |
||
75 | |||
76 | CREATE TABLE IF NOT EXISTS @test_plugin@ ( @id@ int(11) |
||
77 | NOT NULL auto_increment, @name@ varchar(100) NOT NULL |
||
78 | default _, PRIMARY KEY (@id@) ) |
||
79 | 1 | TYPE=MyISAM; |
|
80 | 9 | </requete> |
|
81 | |||
82 | </requetes> |
||
83 | |||
84 | </installation> |
||
85 | |||
86 | <desinstallation> |
||
87 | |||
88 | <requetes> |
||
89 | |||
90 | <requete>DROP TABLE @test_plugin@;</requete> |
||
91 | |||
92 | </requetes> |
||
93 | |||
94 | </desinstallation> |
||
95 | |||
96 | |||
97 | |||
98 | <administration> |
||
99 | |||
100 | <fichier> |
||
101 | |||
102 | <nomfichier autorisation="A-P-C-S-sec-E-R-autre">index.php</nomfichier> |
||
103 | |||
104 | <nomfichier autorisation="A-S">fonctions_plugin.php</nomfichier> |
||
105 | |||
106 | <nomfichier autorisation="P-C-autre">testeur_user.php</nomfichier> |
||
107 | |||
108 | </fichier> |
||
109 | 1 | ||
110 | <menu> |
||
111 | |||
112 | <item autorisation="A" titre="Lister" description="Accéder au plugin TEST_PLUGIN">index.php</item> |
||
113 | |||
114 | <item autorisation="P-C-autre" titre="Lister" description="Afficher la liste des utilisateurs testeurs">testeur_user.php</item> |
||
115 | |||
116 | </menu> |
||
117 | |||
118 | </administration> |
||
119 | |||
120 | |||
121 | |||
122 | </gepinstall> |
||
123 | 10 | Julien Jocal | </pre> |
124 | |||
125 | * Il est indispensable que chaque plugin de modifie pas pas les tables de GEPI autres que celles qu'il crée à son propre service. |
||
126 | * Il est également indispensable que la désinstallation du plugin remette GEPI dans l'état où il était avant l'activation du plugin. |
||
127 | * Dans le module plugin de l'administrateur, il peut installer le plugin sans forcément l'ouvrir. |
||
128 | * 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. |
||
129 | |||
130 | h2. Des idées de plugins : |
||
131 | |||
132 | Ce n'est pas ce qui manque |
||
133 | * La page blanche du PP pour chacun de ses élèves. |
||
134 | * La possibilité de changer de statut au cours d'une même session. |
||
135 | * Intégrer du code pour initialiser GEPI à partir d'un ENT (ou de toute autre source externe). |
||
136 | * 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. |
||
137 | * Un tchat d'échange entre professeurs. |
||
138 | * Bien d'autres idées, laissez vous aller :) |