En quoi Drupal révolutionne le Web ?

Par :
Stéphanie Morel

ven, 25/11/2011 - 12:53

Créé en 2001 par le Belge Dries Buytaert, Drupal est un CMS (Content Management System ou Système de Gestion de Contenu) libre et open-source qui a su se faire une place dans le monde de la conception facilitée de sites web. Par Stéphanie Morel - ingénieur étude et développement chez Additeam.

Arrivé en tête de la catégorie Best Open Source PHP CMS du concours organisé par Packt (société britannique) en 2009, l'outil connaît depuis quelques années un véritable engouement.

Les principales fonctionnalités décrites ci-après concerneront Drupal dans sa version 6 et seront suivies d'un rapide état des lieux des nouveautés que propose la version 7, dernière du nom.

Le principal atout de Drupal réside dans le fait qu'il est simple d'utilisation : quelques secondes seulement pour l'installer avec la création d'une base de données MySQL en standard.

Tout est articulé autour d'un système de modules (plus de 9000 !) répondant chacun à une fonctionnalité bien précise. Ainsi, développer un module de zéro n'est pas toujours nécessaire : vu la quantité de ceux-ci, il est toujours possible d'en trouver un répondant à ses attentes.

Autre point fort du CMS : il est entièrement configurable. Chaque module installé dispose d'un certains nombre de critères le définissant.

Parmi les principaux modules, on retiendra CCK (Content Construction Kit), Taxonomy et Views.

Le premier permet de créer des champs personnalisés pour les différents types de contenu présents sur le site. Par exemple, pour un article, on pourra définir un titre, un corps, une date de création, une ou plusieurs images associées, etc.

Un détail essentiel est de savoir que tout élément défini par un type de contenu est communément appelé « node » (noeud). De cette façon, sur Drupal, tout est node : un article est un node, une personne peut être un node, une galerie d'images peut être un node, etc.

Taxonomy laisse quant à lui la possibilité de catégoriser nos contenus. Il permet la création de ce qu'on appelle « vocabulaire » et qui va contenir des « termes » pouvant à leur tour contenir des « termes ».

De cette façon, il est possible de définir un vocabulaire intitulé « Sport » et de lui attacher les termes « Football », « Natation », « Rugby ». Ces derniers peuvent ensuite être associés à un type de contenu. L'avantage de ce fonctionnement est la possibilité de trier les différents nodes par catégories et de répondre à une recherche de façon pertinente, puisque ces termes font également office de tags.

Enfin, le module Views met à disposition une interface en backoffice, permettant de réaliser des requêtes qui vont ensuite afficher des listes de contenus. On indiquera ici les champs que l'on souhaite afficher, avec quel style, quel filtre et quel type de tri. Cela s'apparente à l'écriture d'une requête SQL.

En ce qui concerne l'habillage du site, on fait appel à un thème. Il peut être directement téléchargé sur le site officiel de Drupal (http://drupal.org/) ou créé de zéro. Ce theming se base sur un ensemble de templates permettant de séparer le code HTML/CSS du code PHP. L'utilisation du module Devel permet l'accès aux informations basiques de l'interface graphique, afin de faciliter le développement et la mise en page du site.

Il est intéressant de noter que la désinstallation d'un quelconque module n'entrainera pas de suppression des données, sauf bien sûr celles qui peuvent concerner ce dernier. De la même façon, il est facile de désactiver un module, ce qui aura pour conséquence de « cacher » les données concernées.

Mais il est également possible de créer ses propres modules personnalisés. On pourra alors utiliser dans son code le système des « hooks ». Le but est ici « d'intercepter » certains comportements par défaut du CMS (validation de formulaire, définition de menus et pages associées, etc...) lorsqu'il fait appel à certains modules, et de les adapter à sa guise, sans influencer le code du coeur de Drupal.

La bonne compréhension de l'architecture du CMS et l'utilisation adaptée des hooks est bien sûr un atout majeur. La tâche peut vite s'avérer complexe pour l'utilisateur inexpérimenté.

La flexibilité de Drupal est un avantage considérable. Les différents contenus créés et affichés via les vues peuvent ainsi être rattachés à une page ou à un bloc. Et une fois encore, tout est paramétrable : la région de la page où le bloc doit s'afficher et sur quelles pages spécifiques il peut être visualisé.

De plus, l'outil dispose de permissions qu'il est facile de configurer afin de donner des droits spécifiques pour certains types d'utilisateurs. On parlera ici de « rôles ». Basiquement, les utilisateurs ont le choix entre deux rôles : l'utilisateur connecté ou l'utilisateur anonyme.

Bien sûr, il existe le rôle d'administrateur qui est en quelque sorte le « super utilisateur » ayant tous les droits sur la plateforme.

Par la suite, il est possible de créer autant de rôles que nécessaire et de les paramétrer suivant ses différents besoins. Cela peut être pertinent pour restreindre l'accès à certains contenus (pages ou blocs), mais également pour autoriser ou interdire l'édition de certains éléments.

 

Les nouveautés de la version 7

La dernière version de Drupal apporte un certain nombre de nouvelles fonctionnalités, parmi lesquelles :

 

  • un backoffice simplifié adapté aux éditeurs de contenus
  • une flexibilité encore plus poussée avec une totale personnalisation des champs de données propres aux contenus, aux utilisateurs, aux commentaires et à la taxonomie
  • un système de sécurité amélioré pour les tâches planifiées (cron), les mots de passe et l'authentification
  • l'ajout d'un framework de tests automatisé avec plus de 30 000 tests prédéfinis
  • l'ajout de thèmes par défaut
  • un meilleur support des installations multi-sites et des engins de recherche

 

La communauté Drupal

Les différents modules dits « contrib » et qui sont accessibles sur le site officiel, ont été développés par la communauté qui regroupe des milliers de membres.

Tout a été conçu pour faciliter la vie aux utilisateurs du CMS. Ainsi, le site dispose d'un forum où la communauté est très réactive face aux questions posées et propose tout un panel de groupes et de réunions traitant de sujets divers et variés.

Chacun a aussi la possibilité de rejoindre les chats IRC de la communauté, que ce soit pour le développement de modules, le support ou d'autres sujets tels l'accessibilité web, la documentation de l'outil ou les modules spécifiques.

 

En résumé, le CMS Drupal regroupe à la fois diversité et flexibilité.

Mais il est important de retenir que même s'il est facile d'accès pour les néophytes qui préféreront tout gérer au clic de la souris, il n'en est pas moins complexe lorsqu'on désire mettre en place une fonctionnalité bien ciblée.

On pourra alors compter sur l'aide de la communauté et également partager avec ses membres ses idées ou alors apporter sa contribution.

A propos de l'auteur

Stéphanie Morel