Projet

Général

Profil

Plugin » Historique » Version 7

Anonyme, 22/06/2009 21:02
Modification de la structure du xml.

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 7
		        <item autorisation="A" titre="Lister" description="Accéder au plugin TEST_PLUGIN">index.php</item>[[BR]]
76
		        <item autorisation="P-C-autre" titre="Lister" description="Afficher la liste des utilisateurs testeurs">testeur_user.php</item>[[BR]]
77 1
		</menu>[[BR]]
78
	</administration>[[BR]]
79
[[BR]]
80
</gepinstall>[[BR]]