PLUGINS, PAQUETS ET DÉPÔTS

Le site Plugins SPIP est motorisé principalement par le plugin SVP.

Cet article fournit des explications sur ce plugin, son fonctionnement, les objets qu’il manipule et qui constituent le fondement de ce site, à savoir, les plugins, les paquets et les dépôts.

SVP, le SerVeur de Plugins

Les objectifs de SVP sont :

  • Tenir à jour une base de plugins/paquets utilisables dans les sites SPIP, en consolidant les contributions de divers dépôts (comme SPIP-Zone) ;
  • Offrir une interface de recherche et d’information sur les plugins, et de téléchargements de leurs paquets (fichiers zip) ;
  • Offrir le socle de la nouvelle interface d’administration des plugins de SPIP 3 conjointement avec STEP.

Le fonctionnement de SVP peut se résumer ainsi si l’on considère l’exemple du dépôt SPIP-Zone :

  • La liste des archives (.zip) de plugins de SPIP-Zone est décrite dans le fichier archivelist.txt. Toutes les heures un script (nommé Smart-Paquets) regénère, si besoin, les archives listées dans archivelist.txt et produit un fichier XML résultant : archives.xml, contenant les informations sur tous les paquets construits.
  • Toutes les six heures, le plugin SVP installé sur Plugins SPIP relit le fichier archives.xml et met à jour sa base de données de plugins d’où est issu l’ensemble des pages du site.

Le Plugin

Le cœur de SVP réside dans son modèle d’objets dont le point notable est la distinction entre le Plugin et ses paquets.
Un Plugin est une fonctionnalité additionnelle à SPIP, distribuée sous forme de paquets. Le plugin est déterminé par son préfixe, unique. Il possède et est aussi (re)connu par son nom et sa catégorie qui doivent rester uniques et constants tout au long de la vie du plugin... Afin que le nom du plugin ne devienne pas une description, on adjoint au plugin un slogan (une description courte). Par exemple, pour « Accès restreint » :

  • Préfixe : accesrestreint
  • Nom : Accès restreint
  • Catégorie : auteur
  • Slogan : Gestion de zones d’accès restreint

Le nom et le slogan peuvent être traduits.

Le Paquet

C’est une instance d’un Plugin. Le Paquet possède donc toutes les caractéristiques du Plugin (comme son préfixe, son nom, sa catégorie...) Il est identifié par ses autres attributs : sa version, sa compatibilité SPIP, son auteur, sa description détaillée et toutes les autres informations incluses dans le plugin.xml. Il est matérialisé par une archive.

Par exemple, Accès restreint possède sur SPIP-Zone deux paquets correspondant à deux branches du même plugin :

  • acces_restreint_1_9, correspondant à la branche 1
  • acces_restreint_3_0, correspondant à la branche 2 qui d’ailleurs a un article de documentation sur SPIP-Contrib titré « Accès restreint 3.0 »

Par extension, les contributions qui ne sont pas des plugins seront aussi assimilées à des paquets matérialisées par une archive mais leurs données se limiteront aux informations de l’archive elle-même. Ces contributions sont aujourd’hui les squelettes non distribués en plugin, les jeux d’icônes, certains outils, les librairies...

Le Dépôt

C’est un lieu d’hébergement d’un ensemble de paquets. Il est défini principalement par une adresse et un fichier contenant la description de tous les paquets hébergés.

Par exemple, le dépôt SPIP-Zone est localisé à l’adresse http://files.spip.org/spip-zone/ et est décrit par le fichier archives.xml (http://files.spip.org/spip-zone/archives.xml).

Les archives sont stockées à partir de l’adresse de dépôt et de préférence dans le répertoire racine. Un paquet est distribué par un seul dépôt.

Il est important de noter que cette notion de dépôt est purement logique et n’est pas forcée de coïncider avec le dépôt physique. Par exemple, on pourrait créer avantageusement plusieurs dépôts logiques sur le même dépot physique SVN SPIP-Zone.

Les Catégories

La catégorie permet de classifier les plugins pour effectuer des recherches rapides. Elle est utilisée sur Plugins SPIP comme principal moyen de navigation dans le site et/ou de filtre des pages. Il existe 13 catégories :

AliasLibellé en français
auteur Authentification, auteur, autorisation
communication Communication, interactivité, messagerie
date Agendas, calendrier, date
divers Objets nouveaux, services externes
edition Edition, impression, rédaction
maintenance Configuration, maintenance
multimedia Images, galerie, multimédia
navigation Navigation, organisation, recherche
outil Outil de développement
performance Optimisation, performance, sécurité
squelette Squelette
statistique Référencement, statistique
theme Thème
Plugins SPIP