Projet

Général

Profil

Plugin » Historique » Version 9

Anonyme, 23/06/2009 12:20

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