Carnet Wiki

IEconfig Carnet de Développement

Version 1 — Septembre 2010 Joseph

IEconfig (Importeur / Exporteur de Configurations) a pour objectif de permettre à plusieurs plugins de pouvoir exporter leur configuration respective dans un seul et même fichier de configuration au format YAML.

Cela permet à un utilisateur de pouvoir exporter (et de restaurer) ses différentes configurations en une seule fois. Par ailleurs, un squelette utilisant plusieurs plugins peut ainsi fournir un fichier de configuration pour configurer ces différents plugins en une seule fois.

Dépendances

IECFG nécessitent les plugins saisies, yaml et verifier.

Le pipeline ieconfig

Pour qu’un plugin puisse exporter/importer sa configuration avec IEconfig, il doit se brancher sur le pipeline iecfg. Ce pipeline est appelé 4 fois :

  • pour construire le formulaire d’export
  • pour construire le tableau de configuration à exporter
  • pour construire le formulaire d’import
  • pour stocker la configuration importée en base

Pour un exemple de code, voir http://svn.spip.org/trac/spip-zone/...

Construction du formulaire d’export

Pour construire le formulaire d’export, IEconfig appelle le pipeline ieconfig en transmettant en argument $flux['args']['action']='form_export'.

$flux['args']['data'] contient un tableau de saisies (voir Saisies) . On ajoutera dès lors à ce tableau les options de saisies propres au plugin. Elles seront réunies dans un fieldset dont le nom sera le préfixe du plugin. Les noms des options de saisies commenceront toutes par prefix_ pour éviter les interférences avec d’autres plugins.

Au minimum, le plugin devra proposer d’exporter ou de ne pas exporter sa configuration.

Il est possible de préciser des critères de vérifications aux saisies (voir Saisies : Doc complémentaire).

Tableau à exporter

Pour construire le tableau d’export, IEconfig appelle le pipeline ieconfig en transmettant en argument $flux['args']['action']='export'.

Les paramètres d’export saisis par l’utilisateur sont accessibles via la fonction _request().

$flux['args']['data'] contient le tableau des données à exporter. Le plugin rajoutera une entrée à ce tableau, avec pour clé le préfixe du plugin, contenant la configuration à exporter.

Construction du formulaire d’import

Pour construire le formulaire d’export, IEconfig appelle le pipeline ieconfig en transmettant en argument $flux['args']['action']='form_import'. $flux['args']['action']='config' contient le tableau à importer.

$flux['args']['data'] contient un tableau de saisies (voir Saisies) . On ajoutera dès lors à ce tableau les options de saisies propres au plugin, si le tableau à importer contient une configuration à importer pour ce plugin (entrée ayant comme clé le préfixe du plugin). Elles seront réunies dans un fieldset dont le nom sera le préfixe du plugin. Les noms des options de saisies commenceront toutes par prefix_ pour éviter les interférences avec d’autres plugins.

Au minimum, le plugin devra proposer d’importer ou de ne pas importer la configuration le concernant.

Il est possible de préciser des critères de vérifications aux saisies (voir Saisies : Doc complémentaire).

Import de la configuration

Pour importer la configuration, IEconfig appelle le pipeline ieconfig en transmettant en argument $flux['args']['action']='import'. $flux['args']['action']='config' contient le tableau à importer.

Les paramètres d’import saisis par l’utilisateur sont accessibles via la fonction _request().

$flux['args']['data'] contient un message d’erreur à afficher si un problème est rencontré. Il sera complété par le plugin si une erreur a été rencontrée lors de l’import.