Project

General

Profile

Actions

Systeme de Plugins » History » Revision 3

« Previous | Revision 3/14 (diff) | Next »
Simon, 05/03/2012 04:35 PM


Système de Plugins

Architecture d'un plugin

L'architecture d'un plugin doit se conformer à quelques règles.

  1. D'abord en ce qui concerne le nommage, le plugin doit nécessairement être préfixé de l21_
  2. Il doit contenir un fichier plugin.xml qui renseignera les méta-informations (nom, auteur, compatibilité, date de sortie, portée du plugin ...)
  3. 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.
  4. 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.
  5. 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, ...

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.

Exemple de fichier plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
    <pluginname>l21_gotoTop</pluginname>
    <description>Add a go to Top button on each pages</description>
    <version>1</version>
    <date>22-01-2012</date>
    <compatibility>1.5 +</compatibility>
    <author>Simon Georget</author>
    <homepage>http://www.empreinte-urbaine.eu</homepage>
    <default_language>fr</default_language>
    <apps>
        <app>public</app>
        <app>admin</app>
    </apps>
</plugin>

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.

Exemple de l'architecture d'un plugin

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.

Pour accéder au code source du plugin, suivez le lien.

Updated by Simon almost 12 years ago · 3 revisions