Fiche logiciel validé
  • Création ou MAJ importante : 28/01/08
  • Correction mineure : 19/09/08
Auteur :
  • Alban Politi - LCMCP (Univ. Paris 6, CNRS, ENSCP, Collège de France, EPHE)
Relecteur(s) :
Responsable thématique :
Mots-clés

Drupal : gestion de contenu Web (CMS) collaboratif

Description
Fonctionnalités générales : 

Drupal est un système de gestion de contenu Web (CMS) à même de créer et gérer des sites web d’informations structurées et classifiées.
Il permet de créer une grande variété de sites, du blog personnel au site communautaire ou d’information.
Il peut être utilisé pour gérer des sites collaboratifs regroupant forum d’échanges, annonces, agendas d’évènements, sessions de conférences, gestion de groupes de travail.
Drupal est maintenant totalement francisé mais pas l’intégralité des modules non officiels.
Le contenu informationnel se situe classiquement dans une base de données SQL. Le choix proposé de base est MySQL/ PostGSQL, mais d’autres SGBD sont possibles car l’accès aux données repose sur une couche d’abstraction logicielle (cf. l’article d’IBM sur Drupal et DB2 Express-C, son produit gratuit).

Caractéristiques de base

  • Architecture en modules rendant le produit facilement extensible, grâce à une API
  • Permissions basées sur des rôles pour définir les actions autorisées, les contenus visibles et les contenus éditables
  • Contenu totalement indexé pour le système de recherche
  • Support des blogs, forums, sondages, commentaires et fils RSS
  • Interface unique pour le front-end et le back-end
  • Suivi des logs, statistiques de visite
  • Aide en ligne
Autres fonctionnalités: 

Quelques détails des principales fonctionnalités : rôles, types de contenu, classification, présentation du contenu et modules complémentaires.

Rôles
Suivant l’importance du rôle de l’utilisateur, l’interface se voit enrichie de menus d’administration et de possibilités d’édition du contenu.
Les rôles sont définissables très finement, en autorisant ou non des actions dans chaque domaine de fonctionnalités.
Par ex. tel “administrateur” pourra gérer les types de contenu et leur classification, tel autre les utilisateurs, un troisième les forums et les commentaires, et un autre jouer uniquement le rôle de modérateur.
Typiquement, on aura les rôles: visiteur (anonyme), rédacteur, responsable de rubrique ou d’équipe, administrateur.

Types de contenu
En dehors des contenus de type “commentaire”, “billet personnel” (blog), “sujet de discussion” (forum) et “sondage” (poll), on distingue principalement 3 types de contenus prédéfinis :

  • “image”: une image avec son format réduit (thumbnail) et une description.
  • “page”: conseillé pour les contenus qui constituent en eux-mêmes une page Web (statique ou dynamique), propre au site pour les pages personnelles par exemple.
  • “récit” (story): conseillé pour les informations souvent simples et courtes, destinées à être affichées en listes.

Cette distinction a pour effet de proposer des catégories d’indexation spécifiques.

Il existe encore un contenu prédéfini “livre” (book) adapté à la rédaction collaborative de livres à contenu hiérarchisé en chapitres, sous-chapitres, etc.

On a en outre la possibilité de définir son propre type de contenu, grâce à un module additionnel au choix, soit “flexinode”, soit “CCK” (Content Construction Kit) apparu depuis la v. 4.7 de Drupal.

On parle de “noeud” (node) pour désigner une information accessible par un identifiant.

On distingue aussi 3 “formats d’entrée” de données, personnalisables :

  • Filtered HTML
  • Full HTML
  • PHP code

Un “nœud” peut recevoir plusieurs types de statuts : publié, à modérer, en page d’accueil, en tête de liste, nouvelle version.
Le statut “à modérer” peut, par défaut, être assigné au contenu créé par un rôle, s’il n’a pas l’autorisation “administrer les nœuds”.

Classification
La puissance et l’originalité de Drupal réside dans sa gestion très évoluée de la classification des données selon un système taxinomique (taxonomy) dynamique.
La classification peut être simple, multiple, hiérarchisée, et même multi-hiérarchique (un terme d’indexation peut avoir plusieurs parents).
On n’est pas limité à 2 niveaux hiérarchiques seulement, comme dans beaucoup de CMS.
Les termes d’indexation (ou labels, tags) sont groupables en “vocabulaires” au sein desquels les termes peuvent être associés entre eux (related terms) et pour lesquels on peut définir des synonymes.
Une API existe pour accéder aux fonctions reliées à la taxinomie.

Cette gestion de la taxinomie permet par ex. ceci :

  • indexer les informations sur la hiérarchie des services d’une organisation.
  • générer un glossaire des informations classé par termes, avec synonymes et renvois vers des termes reliés.
  • un laboratoire de recherche pourra indexer ses publications sur ses auteurs et sur la revue, grâce à des vocabulaires ‘Revues’ et ‘Auteurs’.

Il faut noter la simplicité d’accès aux informations, par termes d’indexation, grâce à de simples urls, par ex. http://chemin-site/?q=taxonomy/term/37,94,125 génèrera la liste des publications (id. 37), pour l’année 2004 (id. 94), pour un chercheur donné (id. 125).

Présentation du contenu
Le contenu et la présentation sont bien séparés (XHTML 1.0 Transitional, CSS).
Des templates (moteur officiel ‘phptemplate’ depuis la v. 4.7) gouvernent la présentation des “nodes”, des commentaires, blocs, boîtes, ou tout type donnée défini par l’utilisateur.

Modules complémentaires
Il en existe plusieurs centaines, qui ajoutent des fonctionnalités au logiciel de base : http://drupal.org/project/Modules

Modules communautaires

  • “Organic Group” (OG modules)
  • “CivicSpace” qui propose une version packagée de Drupal

Editeurs HTML

  • FCKEditor
  • Htmlarea
  • Textile
  • TinyMCE
  • WYMeditor

Module LaTeX

  • DruTeX

Modules de localisation

Modules de “Mapping/Geocoding”

Modules d’Agendas et Calendriers

Modules de calcul

Interopérabilité: 

Export des pages Web en format xml (… et formats d’échange du SGBD)

Contexte d'utilisation: 

Site Web d’un laboratoire d’enseignement et de recherche (60 pers.) ouvert en avril 2007.
Gestion des membres, équipes, thèmes de recherche, cours, productions, annonces.

Quelques raisons du choix de Drupal
(début 2006, une évaluation des CMS Drupal, SPIP et Mambo (Joomla) nous a conduit au choix de Drupal)

  • puissance du classement dynamique en catégories de Drupal
  • prise en main facile de Drupal par rapport à Mambo
  • interface unique par rapport à SPIP
  • cohérence et simplicité de l’architecture de Drupal
  • exotisme des “boucles” de SPIP, apparemment pas si simples à maitriser
  • documentation et forums de Drupal, comme bonne source d’information vivante
Limitations, difficultés, fonctionnalités importantes non couvertes: 

Le choix de l’éditeur html reste entier (éternel débat?); “TinyMCE” a des défauts, notamment de ne pas afficher entièrement l’aspect réel de la page, et de ne pas bien gérer le filtrage de balises offert par Drupal.
Il existe aussi le produit “widgEditor”, plus simple (trop?), avec moins de fonctionnalités mais peut-être plus adapté aux rédacteurs html non spécialistes, qui importent par ex. du html/word.

L’upgrade est parfois compliqué d’une version à une autre, même mineures (ex. 4.6 -> 4.7)

La version 5 apporte nombre d’innovations mais aussi de changements dans les fondements du système, ce qui peut rendre complexe la migration d’un site : les types de données personnalisés (flexinode) doivent être convertis dans le nouveau système de création de contenu (CCK), et le filtrage d’accès aux informations reconçu.

La liste qui suit montre que la fréquence de sortie des versions majeures est élevée. Revers de la médaille, cela implique une fréquence de mise à jour en conséquence, car le support de sécurité d’un site pourra disparaitre après à peine une année, dans la mesure où seules les 2 dernières versions sont supportées.

L’envoi de fichiers (upload) implique de pouvoir configurer les droits d’accès aux répertoires d’upload en mode 777, donc d’avoir accès au système de fichiers du serveur.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré: 

L’organisation “CivicSpace” propose une version packagée de Drupal pour les associations et les lobbies citoyens : http://civicrm.org/

Plates-formes : 

Serveur
Unix ou Windows comportant Apache (recommandé) v.1.3 ou v.2.x, ou IIS (possible) v.5 ou v.6, PHP 4.3.3 ou + (marche avec PHP 5.2), et MySQL 3.23.17 ou 4.0 (versions 4.1 ou 5.0 recommandées) ou PostgreSQL version 7.3 ou +.
Note: Drupal 7 will be developed for php 5.2.

Client
Tous types de navigateurs web (sur toutes plates-formes ?) : Firefox, Netscape, Microsoft Internet Explorer 6 et 7, Mozilla, Safari 2.x.

Opera n’a pas été testé.
Safari 1.x est incompatible avec les outils de l’éditeur TinyMCE.

Autres logiciels aux fonctionnalités équivalentes: 

Quelques informations :

Environnement de développement
Type de structure associée au développement: 

Communauté de développeurs bénévoles.

Eléments de pérennité: 

Drupal est âgé de plus de 6 ans, l’activité de développement est très forte, on compte entre 6 mois et un an entre la sortie de 2 versions majeures successives.
Historique des versions: http://drupal.org/CHANGELOG.txt
A la sortie de Drupal 4.7.0, en mai 2006, on pouvait lire : “100+ Drupal professionals, 300+ third party modules, and over 55,000+ Drupal powered sites”.

Références d'utilisateurs institutionnels: 

Sites français

Mais aussi :

Sites étrangers

  • NASA, IBM, Yahoo, SpreadFireFox, SVM Mac, MTV
  • Réseau de recherche d’excellence européen “FAMEnoe” : http://www.famenoe.org/
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums: 
Documentation utilisateur: 

En ligne

Livres (en anglais)

  • Pro Drupal Development (Avril 2007 par John K. VanDyk et Matt Westgate)
  • Drupal : Creating Blogs, Forums, Portals, And Community Websites (par David Mercer)
  • Building Online Communities With Drupal, phpBB, And WordPress (un peu daté)
Divers (astuces, actualités, sécurité): 
Contributions: 

Commentaires

Conférence Drupal

La dernière conférence Drupal a eu lieu à Szeged (Hongrie) du 27 au 30 août 2008.

http://szeged2008.drupalcon.org/

Autres fiches de CMS dans PLUME