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
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 :
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 :
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 :
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
Editeurs HTML
Module LaTeX
Modules de localisation
Modules de “Mapping/Geocoding”
Modules d’Agendas et Calendriers
Modules de calcul
Export des pages Web en format xml (… et formats d’échange du SGBD)
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)
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.
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
Les fiches avec le mot clé CMS.