Drupal

Fiche logiciel validé
  • Création ou MAJ importante : 02/05/10
  • Correction mineure : 17/12/12
  • Rédacteur de la fiche : Raphaël Tournoy - Institut des Sciences de l'Homme (CNRS, ENS Lyon, Université Lumière Lyon 2)
  • Relecteur(s) : Pierre-Yves Gosset (UREC puis Framasoft)
    Geneviève Romier (Institut des Grilles et du Cloud)
  • Contributions importantes : Alban Politi (LCMCP - Univ. Paris 6) est le premier contributeur de cette fiche
  • Responsable thématique : David Rousse (CNRS DSI)
Mots-clés

Drupal : création de site Web et gestion de contenu (CMS)

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/ PostgreSQL, 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, on peut ainsi activer ou non des modules optionnels du noyau et/ou ajouter des modules externes ;
  • 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 ;
  • alias possibles pour les URL, ce qui permet de donner une URL "parlante" aux pages web ;
  • interface unique pour le front-end et le back-end ;
  • aide en ligne ;
  • un mécanisme d'autorégulation permettant de contrôler l'encombrement du site ;
  • authentification par OpenID ;
  • déclenchement d'actions suite à certains événements systèmes, par exemple envoi d'un courriel quand un nouveau contenu est créé ;
  • agrégateur de contenu syndiqué (flux RSS, RDF et Atom) ;
  • suivi des logs, statistiques de visite, les événements systèmes peuvent être envoyés vers un démon Syslog
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

  • Prédéfinis :

    • 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.
  • Additionnels :

    • commentaire
    • billet personnel (blog)
    • sujet de discussion (forum)
    • sondage (poll)
    • livre (book) adapté à la rédaction collaborative de livres à contenu hiérarchisé en chapitres, sous-chapitres, etc.

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

Le module CCK (Content Construction Kit) apparu depuis la v. 4.7 de Drupal permet de définir ses propres types de contenus.

CCK est presque toujours associé au module Views qui permet de contrôler l'affichage des contenus en construisant des requêtes complexes.

Présentation du contenu

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

Par défaut 3 "formats d'entrée" de données personnalisables sont proposés :

  • HTML filtré
  • HTML
  • Code PHP

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) peuvent être regroupés 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 URL, par ex. http://www.example.com/?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 / thèmes

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 de donnée défini par l'utilisateur. En fonction du template choisit, il est en général possible de déplacer les blocs d'information sur les pages du site grâce à une interface graphique.
La version 6 propose une meilleure gestion des thèmes http://drupal.org/theme-guide/6 que les versions précédentes.

Modules complémentaires

Il en existe plusieurs centaines, qui ajoutent des fonctionnalités au logiciel de base : http://drupal.org/project/modules
Classement des modules par popularité.
Quelques exemples de modules :

Interopérabilité

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

Contexte d'utilisation dans mon laboratoire/service

Contexte pour le premier contributeur de cette fiche :

Site Web d'un laboratoire d'enseignement et de recherche (90 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
  • une seule interface front-office et back-office) par rapport à SPIP
  • cohérence, simplicité et robustesse 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

Contexte pour PLUME :

Le site de Plume utilise Drupal et une trentaine de modules. La méthode du choix de ce CMS a fait l'objet d'un article :
Description du processus de choix d'un CMS pour le projet PLUME

Utilisé pour des sites collaboratifs, par exemple Groupe de travail sur les SIGB libres, MuTEC. Mais aussi pour remplacer des applications web à l'origine développées en interne : Calame : répertoire de bases de données en SHS

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.
Il existe aussi le module 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 entre versions mineures ne pose pas de problème particulier en version 5 ou 6 mais nécessite de l'attention.

La version 6 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 actions sont à reprendre par exemple. À noter également que les modules externes peuvent être intégrés, abandonnés, fusionnés et même qu'il arrive que certains modules optionnels deviennent externes. Avant toute migration d'un site utilisant des modules externes, il convient d'étudier très précisément la situation.

De même, de nombreuses améliorations, modifications sont référencées dans la version 7 à venir.

La fréquence de sortie des versions majeures est élevée (cf. la liste ci-dessous). Revers de la médaille, cela implique un travail 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é

Drupal est disponible dans les dépôts Debian et Ubuntu. Toutefois les mises à jour de sécurité du paquet peuvent entraîner un délai supplémentaire que l'on peut éviter en faisant soi-même les mises à jour.

Il existe une version packagée nommée Acquia Drupal qui contient un ensemble de modules pré-configurés. Cette version est proposée par la société Acquia fondée par le créateur de Drupal. Un support payant est disponible ainsi que des paquets Debian/Ubuntu.

Plates-formes

Serveur

  • Système d'exploitation :

    • UNIX/Linux, OS X ou Windows
  • Serveur web :

    • Apache (recommandé) v.1.3 ou v.2.x, ou IIS (possible) v.5 ou v.6 ;
    • PHP 4.4.0 ou + . PHP 5.2 est recommandé. Par ailleurs Drupal 7 est développé pour PHP 5.2
  • Base de données :

    • MySQL 4.1 ou +, PostgreSQL version 7.4 ou +.

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

Safari 1.x est incompatible avec les outils de l'éditeur TinyMCE.

Le thème utilisé ou développé pour le site doit respecter les standards du web (W3C...)

Logiciels connexes
  • TinyMCE (une fiche Plume est en préparation)
  • JQuery utilisé par Drupal
Autres logiciels aux fonctionnalités équivalentes

Quelques informations :

  • Il existe de très nombreux CMS, voir par exemple sur le site CMS Matrix

  • Une description d'autres CMS dans PLUME :

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

Depuis 2006, une association de droit Belge veille sur Drupal : http://association.drupal.org/node/147
Le président est à l'origine du projet.

De nombreuses entreprises et des individuels en sont membres. Les statuts et règles de fonctionnement sont clairement indiquées sur le site de l'association.

Eléments de pérennité

Drupal est apparu en 2001.
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

Rencontres nationales: "drupal bar camps", une communauté francophone active.
Rencontres internationales: "drupal camp" deux fois par an.

Drupal est actuellement un CMS "à la mode" et de nombreux sites sont construits autour de Drupal. À noter également en France de nombreuses SSLL ou SSII actives autour de Drupal.

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

En anglais

Documentation utilisateur

En ligne

Livres (en anglais)

  • Pro Drupal development / John K. VanDyk. - 2e ed. Apress, 2008
  • Using Drupal / Angela Byron, Addison Berry, Nathan Haug,... O'Reilly, 2009
Divers (astuces, actualités, sécurité)

Il possible d'avoir plusieurs sites Drupal à partir d'une seule installation de code. Ce système d'installation multi-site permet de déployer très rapidement de nouveaux sites et facilite les mises à jour logicielles du noyau, des modules et des thèmes. Chaque site peut cependant posséder ses propres modules/thèmes sans les partager avec les autres utilisateurs.

Des profils d'installation peuvent être créés pour personnaliser le comportement de l'installeur. On peut par exemple activer des modules et configurer des paramètres par défaut dès l'installation.

Drupal France et francophonie : services à la communauté Drupal française et francophone

Contributions

Commentaires

Drupalcamp 2013 à Paris

Le prochain Drupalcamp se tiendra à Paris, sur 3 jours cette fois-ci, du 21 au 23 juin 2013. Plus d'information sur http://paris2013.drupalcamp.fr/.

Appel à conférences pour ce Drupalcamp

Les propositions de présentations sont à soumettre avant le 26 avril : tout se fait ici http://paris2013.drupalcamp.fr/appel-a-conferenciers
David.

Programme du Drupalcamp 2013

Il est disponible ici : http://paris2013.drupalcamp.fr/programme-paris
David.

MaJ, (+ versions supportées + drush)

Quelques éléments:

  • Drupal 5 n'est plus supporté (http://drupal.org/node/1027214)
  • La sémantique pour http://www.example.com/?q=taxonomy/term/37,94,125 n'est pas (plus ?), à ma connaissance, la liste des publications (id. 37), pour l'année 2004 (id. 94), pour un chercheur donné (id. 125) (à tout le moins pas la plus évidente à réaliser; différence entre 37/94/125 [views+contextual filter], 37+94+125 [union] et 37,94,125 [intersection]).
  • Drush est probablement incontournable dans un grand nombre de cas et mériterait peut-être d'être abordé, ou du moins évoqué.
  • la Field API de Drupal 7 a largement remplacé le module CCK
  • À certains égards, la l'Interopérabilité pourrait partiellement apparaître dans la rubrique "Limitations, difficultés, fonctionnalités importantes non couvertes".
  • ... ainsi d'ailleurs que l'upgrade 6 vers 7 :)

[edit, en rédigeant ce commentaire, j'ai omis la mention, pourtant apparente: "version évaluée: v6" ]

Drupalcamp 2012 à Lyon

Pour information, un Drupalcamp se tiendra à Lyon les 26 et 27 mai prochain. Plus d'information sur http://lyon2012.drupalcamp.fr/fr.

Nouveau Framabook sur Drupal

Atelier Drupal 7. Créer un site web avec un CMS pas comme les autres
http://framabook.org/12-atelier-drupal-7-creer-un-...

Autres framabooks :
http://www.projet-plume.org/ressource/framabook-li...

Annonce comme nouvelle fiche

Cette fiche a beaucoup été transformée par le nouveau contributeur et elle décrit une nouvelle version majeure de Drupal la V6. Nous avons donc choisi de la faire ré-apparaître dans les listes et le fil RSS comme une nouvelle fiche.

drupalistic

Bonjour,

Je me permets de signaler un projet personnel, le site www.drupalistic.net sur lequel on trouvera des informations sur Drupal et un guide des modules - auquel tous les visiteurs sont invités à contribuer.

Marie-Hélène Wronecki

Thème Instituts CNRS

Bonjour,

J'ai développé pour l'INSU un sous-thème de Zen qui suit la charte graphique du CNRS, il pourrait servir de base pour d'autres sites CNRS, me contacter au besoin.

Vous hésitez?

Essayez la version portable : une des webapps chez framasoft : http://framakey.org/WebApp/Index

Des vidéos pour débuter : http://php.opensourcecms.com/free/videos.php

Un comparatif entre CMS : http://www.cmsmatrix.org/matrix/cms-matrix

Livres (Francais)

Il existe 2 livres en français :
Atelier Drupal 6 de Cyprien Roudet au éditions CR éditions
Le Campus Drupal 6 de David Mercer au éditions PEARSON

Joseph Giral
LAMETA - UMR5474 (CNRS-UM1-INRA-ENSAM)

liste plume-drupal

Suite à plusieurs demandes de certains d'entre vous, nous venons d'ouvrir une liste pour discuter autour du CMS Drupal que nous utilisons pour la plate-forme Plume. Cette liste n'est pas destinée à remplacer les listes du projet mais plutôt à les compléter en offrant un espace de discussions francophone pour la communauté enseignement supérieur recherche (adresses de messagerie profesionnelles).

Si vous n'êtes pas tout à fait de notre communauté mais intéressé, contactez le propriétaire, des exceptions peuvent être envisagées.

Seuls les abonnements sont modérés.

Pour vous inscrire et participer aux discussions :
http://www.services.cnrs.fr/wws/info/plume-drupal

Geneviève Romier

BibNum: un projet réalisé sous Drupal

Voici un projet utilisant Drupal développé par le CERIMES (Centre de ressources et d'information sur les multimédias pour l'enseignement supérieur - http://www.cerimes.fr/ ).

http://www.bibnum.education.fr/

BibNum est un projet de bibliothèque numérique de textes scientifiques antérieurs à 1940, commentés par des scientifiques contemporains qui souhaitent partager leur intérêt pour ces textes et analysent leur impact dans la science et la technologie actuelle.

Le développement de BibNum peut être mis gratuitement à disposition des établissements publics qui souhaitent développer un projet compatible avec les premiers développements et partager les évolutions futures.

    Quelques informations techniques:

  • La version de Drupal est la 5.8
  • Les modules utilisés (liste non exhaustive) sont : CCK, VIEWS, Biblio, BUEditor, IMCE, Login Destination, OAI2, Pathauto, Sections, SimpleMenu, Thickbox, Token, Tagadelic, XML Sitemap…
  • La visionneuse flash utilise l’API de Scribd (Ipaper), intégrée via un module spécifique. http://www.scribd.com/publisher/integration

Le site s’accompagne d’un blog : http://blog-bibnum.cerimes.fr/ sur lequel vous trouverez des informations concernant l’évolution de BibNum et les articles publiés sur le projet.

Si vous souhaitez des informations complémentaires sur ce projet, n'hésitez pas à m'écrire à cette adresse : quillet[at]cerimes.fr

Guides, tutoriels, vidéos et astuces

Des kits graphiques, des vidéos ("comment mettre à jour un module Drupal", les modules externes, ...), nouvelles fonctionnalités de la version 6 : allez faire un tour sur http://biboo.net/