Préambule
Dans la famille des CMS, SPIP fait maintenant figure de précurseur. Sans doute soucieux de ne pas perdre ses fans, son équipe de développement l’a fait évoluer en essayant d’assurer une certaine compatibilité entre les différentes versions.
Il est sans doute facile de critiquer les failles de ce produit, mais je choisirais plutôt de souligner la dynamique de l’équipe de développement tout en rappelant que lorsqu’un logiciel a la chance d’avoir des dizaines de milliers d’utilisateurs, les restructurations profondes ne sont pas faciles à gérer.
Templates et Boucles
Pour faciliter l’écriture et aussi la maintenance d’application mêlant le php, l’html et les css, tout le monde s’est accordé à dire qu’il faudrai au maximum écrire dans des fichiers séparés, ces différents "langages". La séparation entre la présentation et la structuration des documents a été réalisée par la généralisation des feuilles de styles, et les systèmes de templates PHP ont amené cette séparation entre php et html.
En vocabulaire Spip, une template est un squelette, et ces fameux squelettes incorporent (entre autres) les boucles. Ces boucles assurent l’interrogation de la base de données et l’affichage des résultats.
Pour ceux qui ont quelques notions de SQL (et de PHP) , les boucles ont été conçues dans l’objectif louable de simplifier la rédaction d’une requête SELECT et la manipulation de tableaux pour l’affichage.
Forces et faiblesse
Le principe de réalisation d’une template (squelette) SPIP est simple : après avoir conçu (et debuggé) une page html+css, il faut remplacer le faux texte d’habillage par des boucles. Cela permet beaucoup de libertés dans la présentation du site.
On peut aussi dire que l’objectif de simplification est atteint : les mots propres au "langage SPIP" sont en français, la documentation aussi, et dans une majorité de cas, la syntaxe est simplifiée par rapport à du PHP.
Mais il y a aussi quelques limites :
Pas question de faire autre chose que des SELECT : C’est parfaitement logique, puisque l’objectif premier est d’afficher ce qui a été saisi dans le back office, mais c’est aussi limitant si l’on veut aller un peu plus loin que la gestion d’un formulaire.
Syntaxe simplifiée : la simplification va aussi dans le sens de la réduction des possibilités.
Exemple : Spip réalise automatiquement les jointures lorsque cela s’avère nécessaire. Lors d’une sélection par l’intitulé d’un mot clé, Spip réalise la jointure avec spip_mots par l’id du mot clé.
Mais pour les funambules des left outer join et autres joyeusetés, un dilemme se pose : faut il à tout prix violer les secrets de la syntaxe Spipienne ou doit on se concentrer sur un SQL standard, codé directement en PHP ?
Et comment font les autres ???
D’autres CMS utilisent des systèmes de templates plus « standard » comme Smarty. Dans les grandes lignes, le parti pris est légèrement différent : on conserve du php pur sucre pour extraire et triturer les données, et on propose au développeur html quelques codes simples pour l’affichage des données
Sexy ?
Du point de vue du futur utilisateur du back office de Spip, ce dernier souffre aussi d’un déficit d’image, plus ou moins justifié.
L’interface, bien que remaniée de nombreuses fois, présente un look que l’on peut trouver un peu vieillot.
Il n’y a pas d’éditeur dit "wysiwyg" lors de l’édition d’un contenu et les raccourcis typographiques n’amusent pas grand monde.
Mais …
Sur le look, il n’y a pas grand chose à dire pour sa défense. En informatique aussi, il y a des « fashion victim » et dans la mesure ou le client est roi …
Sur l’éditeur, je serai plus nuancé :
A ce jour, wysiwyg et web ne font pas vraiment bon ménage et la grande majorité des éditeurs intégrés ne font que rajouter automatique et surtout malproprement du code html vintage.
Conséquence du point précédent, il devient difficile d’assurer une cohérence visuelle au site, puisque l’on vient surcharger la ou les feuilles de syles originelles.
Conclusion
Spip est un CMS à surveiller. Ses développeurs continuent à le faire évoluer, et si ils prennent les bonnes options, ce CMS est apte à garder ou à reconquérir une place parmi les cms comme ezpublish , drupal.
Techniquement supérieur à Joomla, Spip perd pourtant des points face à ces CMS simples d’approche pour des non-informaticiens. Et malheureusement, ce public là est aussi prescripteur ou client final … :-)
PS : Conclusion tout à fait personnelle et tout autant discutable …