Project

General

Profile

Systeme de Plugins » History » Version 3

Simon, 05/03/2012 04:35 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 2 Simon
# Il doit contenir un fichier <code>plugin.xml</code> 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é <code>__init__.php</code>. Ce fichier sera exécuté à chaque appel de page. C'est lui qui instancie le plugin et permettra donc son exécution.
10 1 Simon
# 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 2 Simon
# La présence d'un fichier <code>__install__.php</code> 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 1 Simon
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 3 Simon
La capture d'écran ci-dessous décrit l'architecture du plugin l21_gotoTop affichant une flèche permettant à l'utilisateur de revenir en haut de page à tout moment.
42 1 Simon
43 3 Simon
!plugin.png!
44
45
46
Pour accéder au code source du plugin, "suivez le lien":http://dev.linea21.com/projects/linea21/repository/show/trunk/v1/plugins/l21_gotoTop.