Personal tools
You are here: Home Tous les CMS S SPIP Nouvelles Découverte de SPIP 2


Votre publicité ici

 

 

Découverte de SPIP 2

by Sylvain FIX last modified Jul 04, 2010 05:52 PM Copyright Sylvain FIX 2007 - 2010
— filed under:

Après avoir fait quelques projets en SPIP en 2007 et 2008, je n’avais pas eu l’occasion d’utiliser de nouveau ce CMS depuis son passage en version 2.

Logo SPIPArticle tiré du site truffo.fr disponible a cette adresse

Entre temps, il est vrai que j’ai beaucoup travaillé sur différents CMS que ce soit dans le cadre professionnel ou personnel. On peut citer eZ Publish, Drupal, Joomla, WordPress, Dotclear. J’ai donc acquérit une vision d’ensemble des différentes solutions du marché. Il faut bien avouer que SPIP se place parmis les meilleures produits.

Principales fonctionnalités

Une structure arborescente

SPIP permet d’organiser sont contenus dans une hiérarchie de rubriques, il n’y a pas de limitation sur le hauteur de l’arbre de rubrique.

Les articles

L’objet principal permettant de publier des informations sous SPIP est l’article. On peut placer autant d’articles que nécessaire, dans n’importe quelle rubrique.

Un article est constitué de plusieurs éléments qui permettent de le structurer : titre, surtitre, soustitre, descriptif, chapeau, texte principal, post-scriptum. Les règles de base de la typographie française sont appliquées automatiquement (espaces insécables avant les points d’interrogation, d’exclamation, …).

L’édition des articles se fait via des raccourcis typographiques à la manière d’un Wiki.

En plus des articles, on trouve les brèves qui sont de « articles simplifiés ».

Les forums

Les forums sous SPIP correspondent à plusieurs types de fonctionnalités que l’on trouve habituellement sur le Web :

  • les forums publiques (comme le nom l’indique)
  • un système de commentaires plutôt avancées et configurable à souhait
  • un outil pour communiquer entre les différents rédacteurs du sites Web

Le dernier point est particulièrement intéressants car SPIP permet non seulement de s’occuper de l’interface visible d’un site, mais il fournit également toutes les fonctionnalités nécessaire à la gestion éditoriales (forum privé, agenda privé, gestion des droits, workflow, …).

Syndication de contenu

SPIP est fournit en standard avec un système de syndication de contenu plutot avancé, SPIP peut analyser de les flux RSS et ainsi indiquer les nouveautés d’autres sites. On peut ajouter autant de sites syndiqués que l’on veut. Les sites syndiqués sont associés aux rubriques de son propre site ; ainsi, on peut associer à une rubrique thématique les liens vers des sites traitant du thème précis de la rubrique.

Quelques caractéristiques techniques de SPIP

Le langage de template

Pourtant, loin d’être fan des langages de templates, il faut bien avoué que celui de SPIP apportent un certain confort dans la mise en place d’algorithme simple. Le système de boucle permet de notamment de gérer facilement les alternatives lorsqu’aucun élément n’est présent.

<Bn> 
<!-- Code HTML optionnel avant -->
<BOUCLEn(TYPE){critère1}{critère2}...{critèrex}>
<!-- Code HTML + balises SPIP -->
</BOUCLEn>
<!-- Code HTML optionnel après -->
</Bn>
<!-- Code HTML alternatif -->
<//Bn>

La présence d’un grand nombre de critère prédéfinis facilitent les tris et permet d’avoir un code dont la lecture est très proche du langage naturel.

Sa nature radicalement différente de PHP apporte un réel plus. Malheuresement, dès que l’on veut faire des choses complexes le langage de template est d’une lourdeur incroyable. Il suffit de regarder le modèle par défaut pour la pagination pour s’en rendre compte.

#ENV*{bloc_ancre}
#SET{bornes,#ENV{page_courante}|bornes_pagination{#ENV{nombre_pages},10}}
#SET{premiere, #GET{bornes}|reset}
#SET{derniere, #GET{bornes}|end}
#SET{separateur,#ENV{separateur,'|'}}
 
[<a href='[(#ENV{url}|parametre_url{#ENV{debut},''})]##ENV{ancre}' class='lien_pagination' rel='nofollow'>(#GET{premiere}|>{1}|?{'...',''})
</a> #GET*{separateur}]
 
#SET{i,#GET{premiere}}
[(#GET{i}|<={#GET{derniere}}|?{' ',''})[
(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} })
][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}
{separateur=#GET*{separateur}}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}
{page_courante=#ENV{page_courante}}{derniere=#GET{derniere}})]
]
...

Heureusement, SPIP met à disposition d’autres outils utilisable dans les templates permettent de contourner ce problème.

Les modèles

Les modèles sont généralement de petits templates qui sont utilisables à la fois dans l’éditeur de texte ou directement dans les templates. Ce mécanisme est extrêmement simple à mettre en place. Il suffit de mettre un fichier de template dans le répertoire modeles de dossier qui contient votre squelette et le tour est joué.

Les formulaires

Basé sur une architecture CVT (Charger Vérifier Traiter), les formulaires sont faciles à mettre en place. Ils sont bien architecture en 4 composants distincts :

  • une vue qui se trouve dans le répertoire formulaires, c’est un simple squelettes SPIP
  • une fonction de chargement qui va s’occuper de fournir la liste des champs saisis dans le formulaire, avec des valeurs par défaut éventuelles.
  • une fonction de vérification qui va vérifier la validité de la saisie. La fonction renvoie une liste de messages d’erreur correspondants à chaque champs erroné, ou une liste vide en cas d’absence d’erreur.
  • une fonction de traitementqui va s’éxécuter si la fonction de vérification n’a pas renvoyé d’erreur. On y trouve toutes les opérations de traitement du formulaire : envoi d’un mail, enregistrement en base de donnée…

L’accessibilité et les standards Web

Voila certainement l’un des points fort de SPIP, c’est son respect des standards Web, et notamment le fait qu’il possible de répondre favorablement à toutes les exigences des critères d’accessibilités.

En effet, il est parfaitement possible de mettre du code HTML ou des raccourcis typographiques dans n’importe quels champs de saisies. On peut par exemple marquer les changements de langue dans les titres sans affectés les URLs générés.

La seule contrainte pour le rédacteur est de connaitre le HTML et l’utiliser à bonne escient. Mais bon HTML n’est il pas la langue du Web ?

Les plugins

Comme tous CMS qui se respectent, SPIP fournit un mécanisme de plugins. Comme chez la concurrence, leurs qualités est extrêmement variables

Limitation

La principale limitation qu’offre SPIP est sa documentation bien que très volumineuses, seules les fonctionnalités basique sont très détaillés. Quand, il s’agit de faire un plugin, des formulaires, ou autres fonctionnalités cachés, la documentation se limite souvent à un listing des fonctions disponibles, ou à un exemple basique qui n’apportent finalement pas grand chose. Bref, souvent seul le code source nous donnent l’information souhaité. Le problème est d’autant plus grand que SPIP bien que parfaitement architecturé s’écarte des standards habituelles que l’on trouve sur les autres produits.

SPIP est un gestionnaire d’article, le moins que l’on puisse dire c’est qu’il le fait bien. Par contre, dès que l’on veut faire des fonctionnalités qui sortent du cadre les problèmes commencent.

Related content
Document Actions