Drupal est un système de gestion de contenu, un CMS.
Un CMS, littéralement Content Management System, est un logiciel destiné à la conception et à la mise à jour dynamique de sites web ou d'applications multimédia. C’est un logiciel qui permet à quiconque ayant les accès de créer ou du moins de modifier un site web, sans forcément avoir des connaissances en développement web. Le CMS a une interface qui permet de remplir des champs et donc du contenu sur un site, sans avoir à intégrer le contenu dans le code même du site.
Le projet a débuté en 2000 avec Dries Buytaert, à l’université d’Anvers, qui le définit comme un “assembleur rapide de site web”. En 2009, 500 000 sites internet l’utilisaient déjà et il est classé 1er à un concours organisé par Packt, dans la catégorie “Best open source PHP CMS”, devant WordPress et Joomla.
En 2018, on considère qu’il est utilisé par 3,5% des sites web du monde entier, ce qui l’amène à la 3e position du CMS le plus utilisé pour la création de site internet, après WordPress et Joomla.
Quel est son intérêt, sa différence par rapport aux autres CMS ?
Il a quatre caractéristiques d’utilisation pour votre site internet développer avec Drupal :
- On peut l’utiliser tel quel, en conservant les menus standards pour créer du contenu structuré et annotable par tous les utilisateurs étant enregistrés sur le site.
- On peut aussi le personnaliser en modifiant l’affichage des composants visuels standards tels que la date et l’heure, ou le nombre de connectés, ainsi que le thème d’affichage du site.
- Pour aller plus loin dans la personnalisation du CMS, on peut aussi faire des ajouts externes, avec un paramétrage et une personnalisation de modules optionnels qui n’appartiennent pas à la structure de base.
- Enfin on peut l’étendre par du développement interne, en écrivant soi-même de nouveaux modules. Drupal comprend une hiérarchie de fonctions qui permettent à un développeur expérimenté de modifier seulement la partie qui l’intéresse, sans impacter le reste des fonctions, et une base de données qui comprend 60 à 300 tables, selon les modules activés. Il comporte aussi environ 4000 fonctions d’API.
Le fonctionnement d'un site internet sous Drupal :
Tout contenu géré sur votre site internet créé sur une base Drupal est appelé un “nœud”. Par exemple, une page d’article ou une image sont des nœuds. Les nœuds possèdent un type : forum, article de fond, information brève, tutoriel, blog, commentaire, formulaire de saisie, livre collaboratif, image ou galerie d'images, sondage interactif, page de wiki, description d'article à vendre en ligne, petite annonce classée, etc. Il n’y a pas d’architecture prédéterminée pour les formes de contenus, ce qui les rend aisément reconfigurables. Selon le type de contenu, chaque nœud a des champs en fonction de ses spécifications : nom, type, date, auteur, image éventuelle, corps, votes de la communauté sur son contenu, etc. Un nœud peut être rattaché à plusieurs termes taxinomiques (des termes de classification), il n’y pas de hiérarchie unique. Un article sur les champignons peut être rattaché à la fois à “nature” et à “forêt”.
A la création d’un noeud, il lui est attribué un “node ID”, et le système compte le nombre de révision ID. Ce système de révision successives permet de revenir facilement à une version antérieure d’un nœud, si le concepteur ne souhaite finalement pas garder la révision la plus récente. Et chaque nœud possède un titre, ce qui permet de les gérer plus facilement. Le traitement des nœuds est assuré par des modules indépendants, juxtaposables, et combinables, que l’on peut activer et désactiver sans arrêter le site.
Avec Drupal 8, ce ne sont pas les modules qui s’occupent de la présentation, mais des styles, sur le même fonctionnement qu’une feuille de style CSS pour un code HTML. Cela permet de bien séparer la structure du site de la partie visuelle, et donc de séparer les fonctions de créateur de site (qui va gérer et articuler les données) et de graphisme notamment.
Il y a plusieurs rôles possibles sur Drupal : l’administrateur peut définir un rôle pour chaque utilisateur. A chaque rôle correspondent certaines permissions : un utilisateur peut par exemple modifier du contenu dans le site, ou bien n’avoir le droit que de regarder le site, ou encore avoir la fonction de valider ou non les modifications et les commentaires.
Drupal ne garantit pas que le code développé sera compatible entre les différentes versions du logiciel, en revanche il garantit qu’il n’y aura jamais besoin de modifier le contenu, ce qui est très pratique pour les contenus pérennes qui nécessitent beaucoup d’archivage, comme une presse quotidienne par exemple.
La structure même d'un site internet ou d'une application sous Drupal :
Drupal est développé en PHP, avec de nombreuses fonctionnalités programmées en JavaScript.
Il a deux types de composants distincts : un “coeur” défini, et des modules diverses développés librement par la communauté utilisatrice de Drupal. Modules dont, forcément, la qualité ne sera pas aussi assurée que pour le cœur lui-même. Lorsque des modules ont une qualité sûre et sont largement plébiscités, ils peuvent être intégrés dans le cœur de la version suivante du logiciel.