Attention : cet article est publié malgré de nombreuses imperfections, il est donc plus à prendre comme un brouillon, une suite d'idées et d'explications non exauhstives. D'alleurs si vous avez des remarques, elles sont les bienvennues.

Un CMS (Content Management System) est un système gestionnaire de contenu. Ces systèmes sont de plus en plus utilisés car ils facilitent la création et la mise à jour des sites internet. De manière intuitive, des rédacteurs non techniciens peuvent créer de nouvelles pages ou rubriques, supprimer ou modifier certains contenus.

Une définition du concept de CMS est bien dure a établir en évitant tout poncif. Pour cela un coup d'oeil aux dictionnaires ne suffit pas.

  • Système : Ensemble d’éléments, de concepts articulés dans une structure / un composé de parties coordonnées entre elles.
  • Gestionnaire : Celui qui est chargé d'administrer pour le compte d’un autre.
  • Contenu : partie d'une entité

Alors, en termes pragmatiques, "un ensemble cohérent d'outils permettant l'administration des parties d'un tout" ? C'est une définition pas très clair. Et même si en procédant à l'énumération de quelques exemples de contenus, d'actions d'administation exercées sur ces contenus ou d'outils composant ce système, le concept de CMS reste difficile à définir.

Néanmoins, l'éthymologie nous donne quelques indices qui nous seront utiles lors du choix d'un outils :

  • Si la gestion consiste à s'occuper d'affaires pour le compte de quelqu'un d'autre (gérer n'est pas régir nous apprend le Littré), alors la question fondamentale que nous nous poserons lors du choix de l'outil c'est : "Pour qui doit assurer la gestion du contenu ? Pour le lecteur ou pour le redacteur ?"
  • Si un système forme un ensemble cohérent, cela ne veut pas dire que tous les élément de ce système sont issues du même moule. Il est donc possible de combiner plusieurs outils d'origines différentes.
  • Si un contenu est une partie, cela peu vouloir dire une partie de partie ou un ensemble de parties faisant lui même partie d'une ensemble. Mais rien ne dit que c'est du texte, un extrait sonnore, une vidéo ou un joli dessin.

Alors qu'est-ce donc en pratique ?

Le principe de base est de séparer le contenant (la mise en page) des contenus (vos documents textes, images, sons ou vidéo). Les pages visibles par les visiteurs sont le résultat de l'assemblage d'un schéma (parfois appelé « template » ou « thème » ) et de vos données stockées généralement dans une base. Quand l’un de vos visiteurs va sur une page, le moteur du CMS joint les parties adéquates.

Ainsi, l’administrateur du site peut changer la présentation du site en modifiant des modèles de présentations types, sans avoir à changer l'ensemble des pages. Les rédacteurs peuvent créer ou modifier des contenus sans se soucier de la présentation finale, et sans apprendre une syntaxe compliquée. Le site est toujours bien présenté, les menus et tables des matières sont constitués automatiquement, ...

D'un point de vue technique ces systèmes offre de nombreux avantages et permettent d'étendre les possibilité de publication. Le contenu en devenant indépendant de la présentation peut être diffusé conjointement sur plusieurs plate-formes ( web, téléphone mobile, catalogue papier, ... )

La séparation forte des contenants par rapport aux contenus, permet de partager le travail plus facilement. Les rédacteurs peuvent se consacrer à l'écriture des contenus sans avoir à se soucier des technologies, encodages et standards liés à la publication Internet. En séparant les domaines d'interventions de chacun, on réduit le nombre de compétences requises pour intervenir.

Une des caractéristiques majeures des applications CMS, c'est l'indexation et le classement plus ou moins automatiques des publications. Les articles peuvent être facilement classés et répertoriés. Les menus et interfaces publiques d'accès aux documents seront générées automatiquement en suivant des schéma établis. La mise en ligne, la modification ou la suppression d'un article est grandement facilitée.

Dans la pratique, l'administrateur et les rédacteurs disposent d'un accès réservés leur permettant la gestion du site. Tout, ou presque, peut se faire en ligne avec un simple navigateur (Internet Explorer, Firefox, ou autre ). La gestion du site est facilité tout en limitant l'apprentissage de nouveaux outils.

Pour quoi faire ?

Il existe un grand nombre d'applications CMS de très bonne qualité et certaines sont sous licence OpenSource. Et il est parfois difficile de faire son choix au vu de l'étendue des fonctionnalités et du nombre important de critères à prendre en compte. De plus la plupart des systèmes acceptent des modules additionnels appelés plugin ou addon, étendant les fonctionnalités. Néanmoins nous pouvons distinguer plusieurs familles d'applications, chacune adaptée à un usage spécifique :

  • Les CMS généralistes qui essayent de résoudre les cas de figure courant. Ces outils si ils permettent la mise en ligne d'articles, de brèves ou d'images dans des conditions satisfaisantes, ils sont néanmoins limitées dans leurs possibilités de traiter des contenus complexes ou spécifiques. Malgré ces limitations, ils sont sont généralement utilisables comme élément de base pour la plupart des sites web.

    Exemples de logiciels Opensource : Plume, Mambo (Joomla)

  • Les CMS orientés pulication de contenu qui intègrent des fonctions d'indexation, de mise en relation, ou d'assistance à la rédaction de contenus volumineux

    Exemples de logiciels Opensource : Spip, Typo3, systèmes Wiki

  • Les CMS orientés workflow et groupware qui intègrent des fonctions avancées de gestion collaboratives des documents. Cela permet par exemples la mise en place d'un circuit de validation des documents ( Un rédacteur doit faire valider son document par un directeur de publication avant sa mise en ligne publique ), la limitation sectoriel des possibilités de rédactions des intervenants ( Un rédacteur ne peut publier un document que dans certaines rubriques ), ou la rédaction en commun d'un document.
  • Les CMS orientés portails qui intègrent un très grand nombre de fonctionnalités et permettent de construire un site complet en comprenant articles, forums, galeries d'images, catalogues produits, annuaires... Bien que ce type d'applications peuvent êtres tendant, on s'aperçoit à l'usage que si les fonctionnalités sont nombreuses, la qualité d'implantation de celles-ci n'est pas toujours au rendez-vous. Et bien souvent, ces applications ressemblent plus à des couteaux suisses qu'a une boite à outils sérieuse.

    Exemples de logiciels Opensource : PhpNuke, Xoop

  • Les CMS spécifiques qui essayent de répondre à un besoin précis généralement avec succès. Dans cette catégorie on peut classer les systèmes de Blog qui réduisent la publication et le classement des document sous une forme essentiellement chronologique tout en intégrant de nombreux mécanismes de diffusion et de communication inter-sites.

    Exemples de logiciels Opensource : Dotclear, B2Evolution, Wordpress

  • Les CMS-Framework qui permettent de construire des systèmes sur mesure. De solides compétences techniques sont néanmoins requises.

    Exemples de logiciels Opensource : EZ-Publish, Drupal

Lequel utiliser ?

Bref Ce n'est pas les solutions qui manquent. Mais avant de choisir l'une ou l'autre, il faut bien mesurer nos besoins et nos attentes.

Il est à noter que les avantages des solutions OpenSource libres ne se limitent pas aux économies réalisée lors de l'acquisition ou de l'utilisation. La gestion de contenu, par sa nature même, requiert une part importante d'adaptations spécifiques et en ayant accès au code source, les développeurs peuvent réaliser des fonctions nouvelles telles que définir un nouveau type de contenus, en intervenant directement dans le code, une chose qui n'est généralement pas possible avec des outils au code fermé.

Pour établir les critères de choix d'un outils on peut observer:

  • Les fonctionnalités d'aide à la création de contenu
    • redaction des textes,
    • transformation des contenus graphiques,
    • importation direct des outils bureautiques.
  • Les fonctionnalités validations des contenus
    • Correcteurs automatiques (orthographe, typographie, codage, liens externes, ...),
    • système de workflow et d'approbation.
  • Les systèmes de classements et d'indexations
    • Organisation des contenus : Catégories, Listes,
    • Identification des contenu : Gestion de mot clef (tags), Notices,
    • Methode de classement : Classement déclaratif, folksonomie.
  • La gestion des droits d'accès ou de publication
    • Identification de la population : par groupe, par individu,
    • Granularité des droits : par module, par fonction,
    • Lien avec des systèmes d'annuaires externes: LDAP, NIS, samba, Active Directory.
    • Identification et historique des changements (Où, Qui, Quand, Pourquoi)
  • Possibilités de publications
    • Génération de codes standards
    • Génération de flux de syndication RSS ou ATOM
    • Niveau de séparation presentation/contenu
  • Les capacités techniques de l'outils
    • volume des contenu pouvant être géré,
    • Nombre de visiteurs simultanés,
    • Langage de developpement et plate forme technique : C#, PHP, Perl, Ruby, Python, ... IIS, LAMP, J2EE, ...

Quelques liens

  • Sites et portails traitant des CMS
  • Organismes, coalitions, et associations de standardisation