Plugins : présentation et développement

Documentation officielle des plugins : http://learn.elgg.org/en/2.0/admin/plugins.html

Liste des plugins communautaires : https://elgg.org/plugins/

 

Les plugins fournissent plusieurs moyens d'ajouter ou de modifier les fonctionnalités proposées par Elgg. Ils peuvent correspondre à une fonctionnalité minimale comme un éditeur de texte WYSIWYG, ou à une fonctionnalité complète comme un moteur de blog ou une galerie de photos.

 

Les bases

Pré-requis

Tout plugin Elgg est situé dans le répertoire /mod et contient un script appelé start.php. Le nom du répertoire du plugin est le nom de votre plugin, aussi pensez à le choisir soigneusement ! Il devrait être unique, mais clair, de sorte que les administrateurs ne les remplacent pas malencontreusement par un autre plugin du même nom, mais aussi qu'ils puissent saisir d'un coup d'oeil à quoi ils servent.

Les vues du plugin

Le plugin peut disposer d'une série de vues (see the views reference for plugin-specific information). Ces vues peuvent être spécifiques à ce plugin, ou remplacer ou étendre les vues existantes.

Language et traductions

Si le plugin affiche toute forme de texte "système" à l'écran (par opposition à celui saisi par les utilisateurs), il est fortement recommandé d'internationaliser les chaînes de caractères via les fonctions standard d'internationalisation (voir l'aide du groupe Traductions à ce sujet).

 

start.php

C'est le fichier pivot de tout plugin, qui détermine de contrôler ce que fait le plugin.

Initialisation

Il est recommandé de créer une fonction votreplugin_init(), en charge de définir l'affichage des pages, les sous-menus, et toutes autres choses qui doivent être chargées/définies/initialisées lors du chargement d'Elgg (lors de l'event "init"). Pour cela vous pouvez par exemple déclarer cette fonction via :

register_elgg_event_handler('init','system','votreplugin_init');

A l'intérieur de cette fonction, vous pouvez alors définir le mode de fonctionnement de votre plugin.

Fonctionnalités "typiques" d'un plugin (au choix)

 

Astuces

Durant le développement des plugins, il est important de mettre à jour et de désactiver/réactiver les plugins à chaque fois qu'une nouvelle vue est ajoutée. Pour faciliter le travail des développeurs, Cash Costello et Aaron Shay ont créé le plugin Elgg Development Tools qui propose les fonctionnalités suivantes :

  • Options pour contrôler l'utilisation des caches
  • Intégration de FirePHP
  • assemble plusieurs paramètres utiles au développement en un seul Copies endroit
  • Création de squelettes de plugins
  • Listing des vues, actions, events et hooks du système