(ndlr 06/09/2021) : Cet article a été écrit en 2011, les versions et autres éléments repris ci dessous ont évolué depuis et ne correspondent peut être plus à l'actualité.
Le noeud du problème
On observe rapidement une certaine récurrence dans la construction des contenus dynamiques qui apparaissent dans un site Internet. Ils comprennent quasiment toujours un corps textuel agrémenté d’images et éventuellement supportant le format html, une photo de référence (affichable sous forme de vignette), un auteur, une date de création, une case à cocher pour indiquer si le contenu peut être publié ou est encore en révision.
Cet élément ou objet de base correspond à un nœud (node) de Drupal. Il est essentiel et peut se décliner selon les besoins. Un nœud sera l’article d’un blog, le produit d’un e-shop, le livre d’une librairie ou encore la référence d’un portfolio.
Les contenus statiques (adresse, message d’accueil etc) sont aussi organisés dans des nœuds de type page… Une fois un nouveau type de nœud créé, par exemple le type « livre », on rencontre très vite le besoin d’ajouter des champs plus spécifiques. Pour ce faire on va installer un des nombreux modules disponibles gratuitement (CCK) et ajouter en deux coups de cuillère à pot un champ texte supplémentaire pour indiquer par exemple l’éditeur du livre ou un champ image destiné à afficher la photo de l’auteur.
La puissance de la communauté
La communauté open-source (dont nous faisons partie) propulse Drupal à l’avant de la scène en proposant des modules pour compléter les fonctionnalités de base du CMS. Ces modules peuvent être installés à la carte suivant les besoins spécifiques au site développé. Il est alors possible de donner son feedback au concepteur du module qui, avec l’aide de la communauté, le suit, le corrige, l’améliore et maintient le code au travers des versions et révisions.
Lorsqu’un module est suffisamment abouti et pertinent pour la communauté, il est intégré dans le cœur de Drupal (c.à.d. son installation de base) lors de la version suivante. Ce sera par exemple le cas pour le module CCK qui sera incorporé à la base de la prochaine version de Drupal (v7).
La version 6 est déjà très aboutie avec plus de 7000 modules existants. Pour citer un autre exemple, le module « views » sera également intégré au cœur lors de la prochaine distribution. Views permet de construire en quelques instants des requêtes SQL des plus complexes sans devoir écrire le moindre code. Il est ensuite très aisé de présenter le résultat, de le mettre en forme avec de la pagination et de parcourir les éléments (nœuds) par des requêtes ajax sans rechargement de la page. Les vues (views) peuvent être utilisées pour remplir des pages, de simples encarts ou des formulaires de recherche.
Des fonctionnalités vers l'infini... et l'au delà
Pour construire un encart (block) qui affiche les archives d’un blog, quelques clicks suffisent dans le module views. Il y a d’ailleurs une vue « archive » existante qu’il suffit d’activer. Cela représente un gain de temps considérable et permet de pousser le développement d’un site beaucoup plus loin pour un même budget. On peut alors se consacrer à des tâches plus intéressantes comme par exemple l’intégration avec les réseaux sociaux (bien qu’il existe des modules pour çà aussi ….)
- Easy Framework...On a tous joué aux légos : Une des forces de Drupal est également d’avoir construit l’architecture du CMS pour être modulaire en préservant l’intégrité du code source. Il est dès lors possible d’interagir avec tous les modules par l’intermédiaire de petites fonctions appelées hooks, créées à cet effet. Drupal devient un véritable framework pour les développeurs.
- Droit d'accès et multisites: La flexibilité à nul autre pareil : Drupal gère également les droits d’accès de manière très flexible (par type de contenus -noeud, en fonction des utilisateurs, de leurs rôles, ou des communautés). Il permet de mettre simplement en place les mécanismes nécessaires à la rédaction de contenu telle que l’édition, la révision, la modération ou tout autre workflow de publication. Drupal est un système 100% multilingue avec des modules qui facilitent le travail des traducteurs en ligne. Finalement il est possible de faire tourner plusieurs sites sur une installation unique facilitant de la sorte les mises à jours des modules.
- Classement du contenu par tags (Taxonomie) : La catégorisation du contenu (nœud) est basée sur la taxonomie (notion globale englobant le tagging, la catégorisation hiérarchique, etc.). Cela s’applique aussi bien aux produits d’un e-shop pour constituer un catalogue, qu'aux catégories des articles d'un blog et cela permet de construire aisément un nuage de tags (tagclouds).
- Référencement facilité : Il dispose de tous les atouts pour le référencement (ré-écriture d'URL automatisée ou manuelle, respect des standards xhtml, génération de sitemap automatique, meta-tag automatiques, etc. ).
- Un design sur mesure : Les designers ne seront pas en reste. Un système de thème laisse le contrôle total de l’apparence du site. La couche d’abstraction existant entre les données et leur présentation permet de les garder indépendantes l’une de l’autre.
Drupal adopté
En résumé, il s’applique aussi bien aux sites vitrines, communauté en ligne, réseaux sociaux, e-commerce, intranet, média… Le CMS dispose de prestigieuses références dans tous les secteurs si bien que l'on se demande quel prochain site ne sera pas réalisé avec Drupal …