Retrouvez cet article dans : Linux Pratique 37
On sait le Logiciel libre extrêmement fort dès qu'il s'agit de toucher à la gestion de l'information. Or, les CMS ou Gestionnaires de contenu en ligne sont justement dans la droite ligne de ces produits. Mais voilà , il y a une marge entre mettre en ligne des données, les organiser et disposer d'un outil professionnel de gestion de contenu. Et le Logiciel libre répond présent sur toute la ligne. Je vous invite à aller voir de plus près !
Introduction
On entend par CMS le moyen de gérer un contenu en ligne (littéralement : Système de Gestion de Contenu), c'est-à -dire de pouvoir modifier, mettre à jour, organiser un ensemble d'informations accessible depuis un butineur. Ces informations peuvent être purement informatives (site institutionnel, journaux sans collaboration ou coopération avec les lecteurs), marchandes (achat, vente, etc.), restreintes à un nombre donné d'utilisateurs (notion d'" intranet ", mais aussi d'utilisateurs autorisés). Elles ont toutes en commun de nécessiter un système perfectionné de gestion sous peine de tuer à la tâche ceux ou celles qui doivent les maintenir. D'ailleurs, les wikis et autres blogs font partie de la famille des CMS. Et ils ont un poids de plus en plus considérable dans la vie de l'Internet, y compris professionnel. Cependant, ici, nous nous contenterons de parler des CMS professionnels, c'est-à -dire ceux qui ont vocation à gérer les sites d'entreprises, marchands ou non. Et certains incluent toutes les formes d'outils collaboratifs en ligne.
Néanmoins, dès à présent, je tiens à l'affirmer fermement : il n'y a pas de CMS idéal. C'est-à -dire le CMS qui vous offrirait dès l'installation les fonctions et le visuel qui sied à votre société. Non, pour cela, il va falloir du temps et du travail. Car la force d'un CMS, c'est de mettre à disposition des outils. Et on n'a jamais vu que l'outil remplaçait le génie. Il l'aide, l'assiste et parfois le pervertit.
Il y a des CMS qui font mieux certaines choses que d'autres. Certains sont bien écrits et simples d'installation, d'autres abscons au premier regard, mais en revanche totalement paramétrables. Il y a en revanche des CMS pour chaque usage : professionnel ou personnel, collaboratif ou déclaratif. Il y a des CMS qui permettent de monter une galerie commerciale en cinq minutes, mais qui demandent trois jours à être pris en main, d'autres qui permettent de travailler en ligne pour la publication d'informations sans avoir de connaissances techniques préalables, mais ne seront pas capables de faire du e-commerce. Tout est question de savoir ce que l'on veut.
Parce que s'il est un problème que posent les CMS, c'est celui de la profusion ! Je souhaite beaucoup de courage à celui ou celle qui tapant CMS dans Google, Freshmeat ou Sourceforge s'attellera à la tâche de tout installer ! Il va falloir trier...
Pourquoi tant de code ?
On ne peut qu'être surpris par la diversité de l'offre en CMS professionnel, mais aussi par sa profusion. En fait, au bout du compte, ce qui gêne aux entournures, c'est qu'il y a beaucoup, beaucoup de code redondant. On aimerait avoir des produits plus finis, plus accessibles parfois et un peu moins d'offres différentes. Mais il y a plusieurs raisons à cet état de fait :
- Il est facile de coder un CMS. Clairement, un CMS n'est pas le plus difficile à coder ni à penser. On peut donc commencer avec peu de moyens et on dispose paradoxalement de beaucoup d'exemples et de contre-exemples pour s'essayer. Donc, rien n'empêche de foncer. C'est comme les lecteurs de mails ou de musique, vu que c'est simple à penser et à faire, eh bien, on s'essaye avec. Donc, dans un certain nombre de cas, les CMS viennent du fait que c'est un outil parmi les plus évidents à lancer ! Avec des compétences en développement, cela est évident. Le résultat est parfois moins évident !
- On préfère avoir son produit à soi. Bien souvent, derrière les CMS, il y a une commande d'un client ou la demande d'une société ou d'une administration. Il y a un réel besoin qui mène au code. Mais on aurait peut-être pu combler ce besoin en utilisant un outil préexistant et en l'améliorant. Cependant, cela implique de travailler avec les auteurs dudit outil, donc de devoir cohabiter avec des gens qui " ne codent pas comme nous " et dont les objectifs et la volonté peuvent être très différents de ce que l'on attend. Ensuite, il n'est jamais aisé ni agréable de se pencher dans le travail d'autrui pour se l'approprier. Et c'est un péché très commun que de croire qu'il sera plus rapide de recoder soi-même. Parfois c'est vrai ! Mais, il y a une différence entre une librairie basique de lecture d'en-tête MIME et un CMS. En plus, la librairie basique, on ne la recode pas ! Celle-là , on la prend chez les autres ! Donc, on se retrouve à avoir d'excellentes raisons pour se lancer tout seul à l'assaut de la montagne. Et recommencer le chemin déjà fait par d'autres, sans pouvoir (pour ceux qui oublieraient : le temps et les moyens sont limités...) aller forcément plus loin que les autres.
- On veut en priorité une fonctionnalité que les autres n'ont pas. C'est le dernier élément qui " justifie " bien souvent l'écriture d'un nouveau produit. La fonction x ou y qui est indispensable au client z n'existe pas. On peut l'ajouter au produit t qui fait fureur au moment de la commande, mais sans être sûr que le client sera satisfait, car le produit t comporte aussi des défauts... Mais on a dans ses cartons le développement maison qu'on aimerait bien agrandir et c'est l'opportunité pour que cela devienne un produit phare. Donc, c'est parti pour en faire un projet libre qui contiendra la fameuse fonctionnalité x ou y que personne d'autre ne possède. Outre que souvent ladite fonctionnalité existe déjà dans un autre projet qui a échappé à la sagacité des auteurs qui travaillent pour z, il n'est pas dit que le produit maison devienne un projet libre très apprécié et disposant d'une bonne communauté. La démarche est clairement, on ne peut plus, risquée.
Pourtant, il y a un bon point à cette profusion. Pratiquement, tous les domaines " basiques " sont couverts. Certes, bien souvent, on le verra ensuite, il manque des fonctions très avancées ou avancées disponibles directement sous la main à la plupart des projets. Mais il ne faut pas oublier qu'un CMS est avant tout une boîte à outils. Donc, le fait que certaines fonctions particulièrement pointues de gestion de contenu en ligne (en particulier, de recherche avec critères ou encore de mise en page élaborée) soient ardues ou cachées et nécessitent un travail n'est pas étonnant. Un CMS n'a pas normalement pour vocation d'être un produit directement utilisable. On dispose par défaut d'une mise en page relativement basique et, souvent, on peut choisir les fonctions activées ou non. Mais ensuite, il faut nécessairement le personnaliser (logos, mise en page spécifique, etc.). Et cette personnalisation est plus ou moins simple. En se souvenant tout de même que plus le produit est professionnel, plus souvent il est ardu !
Similitudes et différences
La plupart des CMS (si ce n'est tous) reposent sur un triptyque relativement évident : PHP-SQL-XML. En fait, par SQL - rendons à César ce qui lui appartient -, on sous-entend bien souvent MySQL par défaut. Mais la plupart des " bons " CMS acceptent sans sourciller au moins PostGreSQL et parfois Oracle, SQL Server, Firebird et quelques autres.
De même, le choix du PHP comme langage dynamique est en soi évident ou presque. Il s'accompagne d'ailleurs souvent d'un doigt de Javascript. Ce choix permet d'être multiplateforme (Apache et PHP tournent sur tous les Unix ou presque, y compris commerciaux, et sur les plateformes Microsoft) et relativement universel tant le nombre de développeurs ayant des connaissances de PHP et de SQL est élevé. L'XML, quant à lui, est devenu une forme d'organisation de données qui se prête bien aux schémas très dynamiques des CMS. Et tout comme le PHP, il est manipulé plus ou moins bien par la majorité des développeurs et même utilisateurs de Logiciels libres. Enfin, le trio permet de réaliser sans trop de peine à peu près tout ce que peut désirer un utilisateur. C'est la combinaison gagnante du moment !
Ce qui différencie les CMS les uns des autres, ce sont les éléments suivants :
- la gestion de l'interface utilisateur ;
- la notion et la méthode pour gérer les mises en pages ;
- les fonctions par défaut et l'orientation générale du CMS.
Pour conclure cette partie, on peut remarquer que dans le cas des CMS, l'unicité d'approche ne signifie pas une unicité de résultat. En somme, en partant des mêmes briques et des mêmes constats, on n'aboutit pas forcément à la même chose. Et tous les CMS professionnels partent à la base du même constat ! Les vraies différences entre CMS ne se situent pas dans l'installation et le rendu visuel immédiat, mais dans les outils de maintenance et la force de la communauté (assistance, mises en page type disponibles en sus des défauts, etc.). Et c'est une très grosse différence. Car certains CMS orientent directement non pas vers une communauté, mais vers une (ou des) société(s) de services.
Un CMS pour qui ? Un CMS pour quoi ?
Tour d'horizon des possibles
CMS, ERP, même combat !
Le choix d'un CMS est très proche de celui d'un ERP. Une fois qu'une solution est choisie, il est compliqué voire impossible pendant un laps de temps relativement long d'en changer. Alors, tout comme le choix d'un ERP demande une certaine réflexion (souvent la rédaction d'un cahier des charges et la voix de
ceux ou celles qui vont être directement concernées par le changement), la mise en place d'un CMS est une opération structurante à diriger et planifier comme telle.
Une fois l'outil en ligne, ce dernier va générer un apport d'informations externes (commandes, réactions, etc.), mais aussi de l'information et de la réflexion en interne (" Peux-tu rédiger telle page ou telle présentation ? ", " Qui a visité le site ce mois-ci ? ", " Comment est perçue la nouvelle mise en page ? "). Si le projet est bien fait et bien mené, quelle que soit la taille de la structure, le CMS devient rapidement un outil complémentaire de l'ERP et, à ce titre, autant indispensable que ce dernier. D'ailleurs, certains CMS s'interfacent avec l'ERP pour faciliter les commandes en ligne et la visualisation des stocks et des en-cours.
Le CMS complète l'ERP en lui donnant une vitrine sur le monde en ligne, mais aussi en offrant un complément qualitatif à ce dernier (tel produit n'est pas ou peu acheté en ligne, telle offre visiblement n'attire pas, etc.).
De la notion de cahier des charges
J'insiste fermement sur ce point : on ne peut partir s'occuper de CMS sans être un instant penché sur l'usage que l'on veut avoir de l'outil ! En somme, professionnel ou personnel, si l'on veut éviter de grosses bêtises et un découragement certain, il faut prendre le temps de se poser et d'émettre littéralement un cahier des charges. Et c'est de ce cahier des charges que découlera le bon outil.
Par contre, attention à ne pas mélanger dans votre cahier des charges les notions d'" ergonomie ", de " fonctions utilisateurs " (impression en PDF depuis le site web par exemple), avec des problèmes du type : " Je veux qu'il soit développé en PHP 5 uniquement ". Il est tentant quand on est face à un problème de partir bille en tête vers la technique et d'y rester. Mais on ne fait pas un site correct et facile d'usage uniquement en parlant de coder du PHP ou du PERL. Si on ne sait pas ce qu'on doit coder, c'est en pure perte !
En résumé, séparez bien le cahier fonctionnel (ce dont vous avez besoin), du cahier des charges technique (comment vous voudriez le faire). Et vous allez découvrir que bien des problèmes se résolvent dès la conception !
Pour information :
- Toutes les solutions présentées sont multilingues.
- Le français est parfaitement supporté et déjà intégré.
Publication et édition (vitrine dynamique)
Une solution majeure est utilisée et développée en France : SPIP (http://www.spip.net). Cette solution permet relativement facilement de mettre en ligne des articles et de les modifier le tout via une interface extrêmement agréable. C'est la base des CMS pour quiconque veut s'essayer à dépasser le stade du blog ou du wiki (notons que les deux existent sous forme d'ajouts au sein de SPIP).
Ainsi, Le Monde diplomatique (http://www.monde-diplomatique.fr/) travaille sur une base SPIP (Fig. 1) de même que de nombreuses associations, administrations publiques (le cabinet du Premier ministre) et établissements parapublics.

Fig. 1 : Le site Web du Monde Diplomatique est basé sur SPIP.
Il ne faut pas s'y méprendre et penser que SPIP peut tout faire. SPIP est parfait comme premier CMS. Il est facile d'accès et dispose de très nombreuses facilités (modèles, extensions, etc.) et le tout en français ! C'est sa force, sa très grande force. Ensuite, il n'est, par exemple, pas fait pour gérer un cycle de publication avec autorisation multiple, de même qu'il n'est pas conçu pour être une galerie marchande. Ce qu'il fait, il le fait bien. Mais il ne fait pas tout.
La force de SPIP tient dans sa facilité d'installation (environ trois minutes du moment qu'on dispose d'une base MySQL avec les droits et d'un serveur Apache avec PHP 4 qui fonctionne), mais surtout d'une communauté très active et de très nombreux exemples, modèles et autres didacticiels ou aides.
Une mine pour débuter un site pour une TPE ou une PME qui ne veut pas faire d'e-commerce, mais qui souhaite quelque chose de simple en ligne.
Publication et édition (métiers de l'édition)
Vous éditez un fanzine, une publication spécialisée ou, plus simplement, vous êtes éditeur indépendant. Vous avez besoin d'un outil qui vous permette de mettre en ligne des articles, de donner des droits à des utilisateurs et le cas échéant de suivre vos envois et vos abonnements.
Campware (http://www.campware.org) est à mon avis une solution très intéressante. Une ONG américaine a planché sur le sujet et a sorti cette suite complète pour médias indépendants (y compris radio et podcast !). Cette suite vise en premier lieu les PECO (anciens États du bloc communiste) et les États d'Afrique et d'Asie où la liberté de l'information reste un vœu pieu et où les structures de distribution et d'édition sont inexistantes.
La suite est donc redondante par endroit pour les Français (en effet, ceux-ci se voient déjà offrir certaines prestations, comme la gestion des points de vente, par leur diffuseur national, NMPP – Nouvelles Messageries de la Presse Parisienne – ou autres), mais elle n'en est pas moins passionnante. J'admets tout de go que les fonds de cette ONG peuvent faire rougir quelques puristes, puisqu'on y trouve ni plus ni moins que la NSA ! Mais bon, c'est du Logiciel libre...
Le seul inconvénient, étant donné que la France n'est pas vraiment un pays qui entre dans la définition des objectifs de l'éditeur, est qu'il n'y ait pas de traduction française. Mais cela ne représente que quelques jours de travail...
Galerie marchande
Le site d'achat en ligne en Logiciel libre est nettement moins simple. Car il sous-entend de disposer de fonctions d'achat et de liens vers des banques. De ce point de vue eZPublish (http://www.ezpublish.no), Mambo/Joomla (http://www.mamboserver.com/http://www.joomla.fr) ou Typo3 (http://www.typo3.org) sont des solutions.
Néanmoins, il y a là profusion de propositions en provenance des développeurs anglo-saxons. Mais il faut faire attention aux réponses de Google ou de Freshmeat : beaucoup ne sont pas open source, mais fonctionnent sur des bases open source. Néanmoins, c'est hors champ ! Une fois le flot de réponses nettoyé, il est bon de voir ce qui reste. Et si l'on veut rester dans la simplicité, eh bien, les trois précédemment cités sont la bonne pioche.
Les différences tiennent dans les éléments suivants :
- eZPublish (Fig. 2 et 3) dispose en standard d'un lien avec l'ERP TinyERP et de moyens de paiement en ligne via PayPal. En revanche, il est TRÈS lourd. C'est une solution qui exige un serveur dédié avec au moins 512 Mo de RAM, si ce n'est plus, en fonction de la taille de la base de données. Il est clairement à destination de personnes morales qui ont prévu des moyens conséquents.
Par ailleurs, on retiendra que ses divers exemples par défaut sont excellents et permettent une très rapide mise en ligne. Cependant, la traduction française souffre de défauts réels (interface administrateur et utilisateur) et il demande un certain temps d'adaptation. Son schéma XML de balise n'est pas tout à fait... évident ! Mais il fonctionne très bien. Je vous laisse relire l'article consacré à eZPublish paru dans le Hors-Série n°5 de Linux Pratique.


Fig. 2 : Un site de présentation réalisé avec eZPublish Fig. 3 : L'interface d'administration d'eZPublish comporte un éditeur de texte pour créer votre contenu.
- Typo3 est un outil dont la densité confine à l'extraordinaire (Fig. 4, page suivante). Son moteur de recherche par exemple effectue cette dernière y compris dans les PDF ! Et il contient tout le reste en termes d'extensions ! En revanche, comme ezPublish, faites attention à la taille du serveur dédié et aux optimisations dudit serveur. Ne vous arrêtez donc pas à un test simple sur une station dans un coin. Vous risquez de revenir déçu. De même, préparez-vous à un certain apprentissage pour ce qui est de la structure et de la méthode. Mais c'est puissant !
- Joomla est un outil certainement moins dense immédiatement que Typo3 et moins structurant qu'eZPublish, mais il est aussi plus accessible dans la vie de tous les jours à ceux qui ne font pas vœu d'être des développeurs permanents de sites web (Fig. 5, page suivante). Il a fait l'objet lui aussi d'une complète présentation dans le hors série n°5 de Linux Pratique. Je vous invite à vous y (re-)plonger !

Pour ceux qui veulent tester les solutions simplement, je rappelle que la plupart des stations Linux font tourner par défaut un serveur Apache et que de très nombreux didacticiels sont disponibles concernant l'installation rapide des sous-domaines. De même, ceux qui n'ont qu'une station Microsoft sous la main, peuvent installer EasyPHP (http://www.easyphp.org) et valider rapidement la pertinence d'une solution. Attention cependant aux performances, ce n'est pas le reflet de la réalité !
On rappelle que les distributions live (type Ubuntu par exemple) fonctionnent très bien pour une installation temporaire (attention, dans ce cas l'arrêt de la machine signifie le nettoyage et la suppression définitive de votre CMS) et contiennent ce qu'il faut. Elles disposent d'un peu de place libre en sus une fois en mémoire (donc il est possible d'installer en ligne les extensions PHP, Apache – si absent – et le CMS de nos rêves !).
Je suis parfaitement d'accord, il y a encore bien d'autres possibilités qui existent et qui n'entrent pas totalement dans ces cases. En particulier, certains CMS anglo-saxons sont très clairement orientés
e-commerce. Cependant, ils ne m'ont pas convaincu à l'installation ni lors de la prise en main. Selon moi, les cinq applications citées dans cet article permettront déjà sûrement de répondre à un large éventail de besoins en termes de gestion de contenu. Mais libre à vous de tester d'autres solutions ! L'appréciation d'un CMS reste en effet très subjective...
Conclusion
On aurait envie en conclusion de dire que tel ou tel CMS est le bon outil. D'ailleurs, à titre professionnel, je me suis permis de le faire avec nuances dans le Hors-série Publication Web. Mais ici, je ne le ferai pas. Je pense que tous les CMS présentés ci-dessus sont performants du moment qu'on leur demande ce pour quoi ils ont été conçus et pas autre chose ! En réalité, chaque CMS présenté ici est, je crois, le meilleur de sa catégorie. Chacun répond au cahier des charges des utilisateurs ciblés. À vous de déterminer à quel type d'utilisateurs vous appartenez...
Dans le cadre de notre recherche professionnelle, le résultat est non seulement splendide, mais encore mieux : rien ne justifie d'utiliser une solution propriétaire. Le peu qui manque parfois aux solutions libres pour tel ou tel usage se règle avec un achat de service qui se compense sans difficulté en termes budgétaires.
Cependant, il ne faut pas crier victoire et se jeter sur le premier projet venu dans la liste ci-dessus ou après une recherche rapide. Je n'oublie pas que la plupart des lecteurs que vous êtes ne sont pas des développeurs et que vous avez peu de temps à consacrer à la mise en œuvre d'un outil. Alors, j'aimerais que vous soyez conscients que tous les projets demandent un temps d'adaptation certain. En particulier, l'apprentissage des balises spécifiques n'a rien d'évident avec certains d'entre eux. Et si des projets disposent de bons didacticiels, de bons ajouts pour les logiciels de développement (Quanta+ ou Kate par exemple), d'autres au contraire sont d'une aridité terrifiante. Soyez attentifs à ces points avant de faire un choix qui sera forcément très structurant !
Et il est bon de se souvenir que la plupart des projets dont nous avons parlé sont soutenus par des organismes d'états ou à buts lucratifs. Ce code n'est pas venu de nulle part. Il est important, si vous l'utilisez, de le faire savoir. D'une part, parce que cela
renforcera le projet d'où vous tirez le CMS en lui offrant une publicité nécessaire, d'autre part, parce qu'ainsi vous allez pouvoir aider le projet en termes de besoins (quoi de plus à faire ?) et d'expérience (pourquoi lui et pas un autre ?). Vous pouvez même, dans bien des cas, acheter des services si cela répond à vos besoins.
Bonne chance en ligne !

