Project

General

Profile

Systeme de Plugins » History » Version 1

Simon, 05/03/2012 04:16 PM

1 1 Simon
h1. Système de Plugins
2
3
h2. Architecture d'un plugin
4
5
L'architecture d'un plugin doit se conformer à quelques règles.
6
7
# D'abord en ce qui concerne le nommage, le plugin doit nécessairement être préfixé de *l21_*
8
# Il doit contenir un fichier _plugin.xml_ qui renseignera les méta-informations (nom, auteur, compatibilité, date de sortie, portée du plugin ...)
9
# Il doit nécessairement disposé d'un fichier nommé __init__.php. Ce fichier sera exécuté à chaque appel de page. C'est lui qui instancie le plugin et permettra donc son exécution.
10
# Si le plugin fait appel à des fichiers de langue, il doit impérativement reproduire la structure applicative. Il contient alors un répertoire nommé languages et autant de sous-répertoires pour les langues (par exemple _fr_ et _en_). Tous les fishiers contenus dans les sous-répertoires seront chargés lors de l'instanciation du plugin.
11
# La présence d'un fichier __install__.php permettra lors de l'installation du plugin d'effectuer des actions relative à sa mise en oeuvre, par exemple, l'ajout d'une table dans la base de données, la modification d'un fichier, ...
12
13
Pour le reste, vous avez une totale liberté dans l'organisation de votre plugin. Veillez toutefois à proposer une structure claire, afin que celui-ci puisse être amélioré ou repris par un autre utilisateur.
14
15
h2. Exemple de fichier plugin.xml
16
17
<pre><code class="xml">
18
<?xml version="1.0" encoding="UTF-8"?>
19
<plugin>
20
	<pluginname>l21_gotoTop</pluginname>
21
	<description>Add a go to Top button on each pages</description>
22
	<version>1</version>
23
	<date>22-01-2012</date>
24
	<compatibility>1.5 +</compatibility>
25
	<author>Simon Georget</author>
26
	<homepage>http://www.empreinte-urbaine.eu</homepage>
27
	<default_language>fr</default_language>
28
	<apps>
29
		<app>public</app>
30
		<app>admin</app>
31
	</apps>
32
</plugin>
33
</code>
34
</pre>
35
36
La balise <apps> définit la portée du plugin. Elle peut comporter un ou plusieurs tags, selon que le plugin est utile à l'interface publique, à l'interface d'administration ou au deux -comme dans l'exemple ci-dessus.
37
38
39
h2. Exemple de l'architecture d'un plugin 
40
41
42
Insérer ici la capture d'écran