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 dansarchivelist.txtet 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.xmlet 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 :
| Alias | Libellé 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 |


