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 |