Project

General

Profile

Note : Cette page est une copie du fichier source:epeire/plugins/documentation.textile, de la révision 323df890. Il est possible qu'une version plus récente soit présente dans le code source.

Voir les plugins smtp et fetchmail pour des exemples fonctionnels.

Plugins

Dans la suite du texte, nous supposons que nous considérons le plugin dummy.

Écriture

Un plugin est une application Django, située dans le répertoire
epeire/plugins/dummy. Étant une application Django, les sous-modules urls,
templates, etc. ont le comportement attendu.

Définition

Le fichier dummy/__init__.py doit définir une variable nommée PLUGIN, de
type plugins.Plugin().

Cette classe prends comme arguments :

  • name : Le nom du plugin, c'est-à-dire le nom du répertoire le contenant.
  • title : Courte description du plugin.
  • menu_items : Entrées dans le menu (voir ci-après).
  • depends : Autres plugins devant être chargés avec celui-ci.

Dépendances

L'argument depends est une liste des dépendances du plugin, c'est-à-dire la
liste des noms des plugins qui doivent être chargés pour que le plugin courant
puisse fonctionner.

Il faut noter qu'affecter un plugin à cet argument (depends = ["smtp"]) ne le
charge pas : le seul effet est de vérifier que ce plugin est bien chargé, et de
lever une exception si ce n'est pas le cas.

Ajouter des liens dans l'application

Pour le moment, le plugin ne fait pas grand chose. Il est possible d'ajouter
dans le reste d'Épeire des liens vers des pages gérées par le plugin. Ceci est
fait avec l'argument menu_items de la classe plugins.Plugin().

Cet argument est une liste de tuples de quatre chaînes (HOOK, TITRE,
DESCRIPTION, CIBLE)
, où :

  • HOOK est l'endroit où ajouter cet élément de menu. Pour le moment, les
    lieux disponibles sont :
    • admin.debug : Menu debug de la partie administration.
    • mail.preferences : Page des préférences de courriels (application mail).
  • TITRE : Titre de l'entrée (texte libre).
  • DESCRIPTION : Description de l'entrée (texte libre).
  • CIBLE : Cible du lien. Elle peut être une vue ou une URL.

URL

Les URL utilisées par le plugin sont définies dans le module urls, comme pour
n'importe quelle application Django.

Templates

Les templates sont situés dans le répertoire templates, comme pour n'importe
quelle application Django. Néanmoins, il est conseillé de faire commencer les
noms des fichiers par "plugin_dummy_", afin d'éviter des conflits avec les
templates définis par les autres plugins ou le reste de l'application.

Fichiers statiques

De même, les fichiers statiques sont placés dans le dossier static, et pour
les mêmes raisons, il est conseillé de les placer dans un sous-répertoire
static/dummy. Un fichier static/dummy/img/galois.png est ensuite utilisé
dans un module avec {{STATIC_URL}}plugin_dummy/img/galois.png.

Activation

Les modules ne sont pas activés par défaut. Pour qu'ils le soient, il faut les
ajouter dans la configuration d'Épeire. Dans le ficher etc/config/plugins, il
faut définir la variable ENABLED. Par exemple :

  ENABLED = ("dummy",)

La commande manage.py syncdb peut-être utilisée pour mettre à jour la base de
données si nécessaire.