Pourquoi cet article ?
Cet article a pour but de vous familiariser avec Drupal et surtout de vous convaincre de l’utiliser pour la conception de votre site web, mais aussi d’un intranet ou extranet par exemple.
Car je pense qu’il s’agit de la meilleure solution existante aujourd’hui pour la conception de sites web ayant besoin de fonctionnalités poussées, mais également de sites un peu moins étendus, mais susceptibles d’évoluer avec le temps.
Drupal permet ceci de manière très réussie et c’est ce que je souhaite vous démontrer dans cet article. Et peut-être aurez-vous envie suite à votre lecture, de faire appel à mes services pour la création de votre site web avec Drupal ?
Sommaire
Drupal c’est quoi ?
Drupal est un CMS (Content Managing System) qui permet de créer des applications web, principalement des sites internet, des intranet/extranet et des sites e-commerce.
La force du CMS est que «n’importe qui» peut, avec un peu de pratique et beaucoup d’aide de la communauté de plus d’un million de membres, créer un site internet sans avoir de grandes connaissances en langages de programmation comme le PHP, le HTML ou le CSS.
Le grand intérêt pour les professionnels du web comme moi, c’est d’avoir un outil puissant et très flexible avec lequel nous pouvons développer des sites sans avoir à recréer à chaque fois les fonctions basiques, ce qui permet de se concentrer principalement sur des éléments essentiels que sont l’ergonomie, le design et le référencement.
De plus un CMS, notamment Drupal, est maintenu dans le temps. La compatibilité des modules et du cœur du CMS avec les évolutions du web est assurée par la communauté des 28 000 développeurs du CMS et des modules à condition d’en assurer la maintenance régulièrement.
Ainsi le site devient obsolète moins rapidement qu’avec un développement spécifique (développer toutes les fonctions soi-même en PHP par exemple) et il est plus facile de le remettre aux goûts du jour en refondant le thème uniquement.
L’histoire de Drupal
Drupal est un CMS initialement développé par Dries Buytaert à partir l’an 2000 qui définit lui-même sa création comme un «Rapid website assembler» en Français «assembleur rapide de site web».
En 2009, il était classé 1er du concours de la société Britanique «Packt» devant WordPress et Joomla dans la catégorie «Best open source PHP CMS». D’autres concours lui attribueront la première place devant ses principaux «rivaux» WordPress ou encore Joomla.
En 2010 selon certaines estimations, Drupal équipait environs 1% des sites web mondiaux, dont celui de la Maison Blanche aux USA, mais aussi de nombreux sites institutionnels et de très grandes marques que je détaillerais plus bas.
L’arrivée de Drupal 7 en 2010 a été une petite révolution pour le CMS. Plus simple à utiliser, plus puissant et tournée résolument vers une utilisation modulaire, Drupal a connu un essor formidable depuis cette version.
Sa version 8 a proposé à la communauté une réécriture complète du code pour améliorer de nombreux points en utilisant notamment le framework PHP Symfony également utilisé par de nombreux développeurs à travers le monde et le moteur de rendu Twig (qui permet de gérer l’affichage).
Dans les nouveautés, on note aussi une amélioration de la gestion de plusieurs environnements (développement, test, production), l’utilisation de Composer pour gérer l’installation et les mises à jours, la prise en charge multilingue dans le noyau, ainsi que de nombreuses améliorations.
En avril 2024, date de mise à jour de cet article, la dernière version majeure en cours est la 10. Elle apporte de nombreuses améliorations des performances, de l’ergonomie et de stabilité.
Les différents composants de Drupal
Le noyau Drupal
Le noyau du CMS («core» en Anglais) est la structure de base de Drupal, les fichiers qui servent à installer le CMS, installer des modules, construire la base de données, etc.
Le noyau Drupal est régulièrement mis à jour par ses développeurs et lors des versions majeures, des fonctionnalités supplémentaires sont ajoutées, souvent des modules déjà fonctionnels, très utilisés et reconnus par la communauté Drupal.
C’est un peu la consécration pour un développeur de module, de voir sa création intégrée au noyau Drupal.
Les modules pour étendre les fonctionnalités
Les modules sont des applications à installer pour bénéficier de fonctionnalités supplémentaires comme la création de formulaires, la création de menus ou encore l’intégration de médias photos, vidéos ou autres, sécuriser son site web, etc.
Chacun permet une ou plusieurs fonctions précises, qui peuvent être encore complétées par d’autres modules qui s’ajoutent aux premiers pour les rendre encore plus complets et puissants.
Voici quelques-uns des modules les plus réputés sur Drupal :
Metatag
Ce module Drupal permet d’optimiser les balises méta pour améliorer le référencement de votre site ou application web.
Webform
Ce module est un « must have » selon moi. Il permet la création de formulaires complexes avec des actions automatique à la soumission et plein d’autres fonctionnalités puissantes.
Pathauto
Ce module permet de générer des chemins d’url avancés grâce à des variables par exemple pour chaque type de contenus.
Token
Il propose des variables qui peuvent être utilisées un peu partout pour générer du contenu dynamique. Par exemple dans les balises méta ou dans les chemins d’URLs.
Il existe sur le site officiel de Drupal, plus de 12 000 modules différents, dont plus de 5500 compatibles avec la version 10.
Les thèmes Drupal
Le thème gère l’aspect graphique et ergonomique du CMS, c’est le thème qui définit par exemple la position du logo, la taille du titre, la couleur de fond du site, la disposition des pages, etc.
Il contient principalement du HTML, du CSS et du JavaScript. Un peu de PHP sert également à intégrer des éléments qui peuvent être inscrits dans la base de données pour rendre le thème plus dynamique.
Il existe de nombreux thèmes sur Drupal
Rien que sur Drupal.org, le site officiel de Drupal, près de 300 thèmes sont disponibles gratuitement pour Drupal 10.
Il existe également des sites comme themeforest.net qui proposent des thèmes majoritairement payants.
On retrouve différents types de thèmes Drupal
Il y a les thèmes peu flexibles, mais forts utiles pour ceux qui veulent un thème simple à configurer avec un design bien défini et qui ne nécessite que peu de connaissances en langages de programmation.
On y trouve le thème Tara ou encore Vani qui sont tous deux parmi les thèmes Drupal les plus populaires.
On trouve aussi des thèmes plus flexibles, souvent basés sur des frameworks CSS comme Bootstrap ou Foundation.
C’est le cas de Barrio, que j’utilise pour mes clients, basé sur Bootstrap, mais aussi de Adaptivetheme (attention, il semble que la société qui maintenait et développait le thème ait été fermée), qui sont des thèmes de base qui peuvent être étendus par un thème enfant.
Drupal propose aussi des thèmes inclus à l’installation de Drupal, qui bien que de grande qualité, mais peu personnalisables et aussi très utilisés, donc votre site risque d’être similaire à beaucoup d’autres si vous les utilisez.
Les blocs
Les blocs sont des sortes de boites qui permettent d’y intégrer du contenu et de les placer à l’emplacement de votre choix, fourni par le thème.
On peut par exemple créer des blocs pour y afficher les articles récents, les derniers commentaires, un diaporama ou encore une vidéo…
Tout l’intérêt des blocs est de pouvoir disposer son contenu comme on le souhaite et de pouvoir, le cas échéant, le déplacer pour mettre en avant telle ou telle information ou fonctionnalité.
Il est possible d’afficher un bloc sur une seule page, plusieurs pages ou même toutes. Il est également possible de n’afficher un bloc qu’à certains rôles ou sur certains types de contenus seulement.
Depuis Drupal 8 il est possible de créer des types de blocs, ce qui rend l’utilisation de ceux-ci encore plus puissante.
Les nœuds (nodes en Anglais)
Les «nœuds» sont une spécificité de Drupal, ce terme regroupe tous les éléments des types de contenus d’un site Drupal. Ainsi les pages web, les articles de blog, les topics de forum, etc. sont tous appelés des «noeuds».
Il semble que cette dénomination ait été utilisée pour représenter l’idée que chaque élément de contenu est interconnecté et peut être relié à d’autres éléments. Un peu comme un réseau ou une arborescence.
Ca aurait pour but d’illustrer la flexiblité et les modularité du système de gestion de contenu de Drupal.
Les types de contenus
Les types de contenus sont des types de nœuds en sommes. Chaque type de contenus à une utilisation propre. Il peut en exister autant que l’on veut et chaque type de contenu pourra avoir des champs différents, un affichage personnalisé, des droits d’accès spécifiques, etc.
Les types de contenus par défaut de Drupal sont :
- Page de base – Une page standard avec un titre, une description, une image. Souvent utilisée en page statique, comme les pages « à propos », « les mentions légales » ou encore la page d’accueil du site.
- Article – Une page souvent utilisées pour écrire des articles de blog. Elle contient souvent un titre, des mots clés, un résumé, une description et une image.
Cependant il est souvent indispensable d’en créer de nouveaux pour correspondre aux besoins du site web. Voici quelques exemples de types de contenus les plus utilisés :
- Offre d’emploi – Pour créer des fiches d’offres d’emploi et faciliter le recrutement de nouveaux talents.
- Produit – pour Drupal Commerce notamment qui permet d’ajouter des articles à vendre.
- Formulaire – pour créer des formulaires de devis par exemple avec Webform.
- F.A.Q. – qui permet de créer une foire aux questions pour répondre aux interrogations des visiteurs.
Les librairies
Les librairies sont des fonctionnalités externes à Drupal qui sont souvent intégrées à des modules. Par exemple des plugins JQuery pour ajouter une touche de dynamisme au site et améliorer l’ergonomie de certaines fonctions.
La base de données
La base de données sert à stocker les informations du site. De l’emplacement des fichiers à tous les contenus du site en passant par les paramètres de configuration des modules et fonctionnalités du noyau Drupal.
La base de données permet de rendre le site dynamique et de pouvoir y ajouter des informations sans manipuler ni ajouter de fichiers au site.
Les distributions
Les distributions Drupal ne font pas partie des composants du CMS, mais je me devais d’en parler tout de même. C’est pourquoi je vous en parle ici malgré-tout.
Les distributions sont un assemblage de plusieurs modules, et thèmes pré-configurés avec des types de contenus, des taxonomies, etc.
Chacune est dédiée à un domaine en particulier comme le e-commerce avec Commerce Kickstart (Drupal 7 uniquement) par exemple, les réseaux sociaux et intranets avec Open Social, pour un site de formation en ligne avec Opigno LMS, etc.
L’intérêt des distributions est de faire gagner du temps aux concepteurs de sites web en leur prémâchant le travail.
Malheureusement, elles sont très peu utilisées et à l’image de kickstart, disparaissent les unes après les autres, bien que certaines émèrgent de temps en temps pour des problématiques très ciblées.
Les fonctionnalités principales de Drupal
Drupal était un CMS très léger au départ avec très peu de fonctionnalités. Certains modules ont, au fil du temps et des versions, été intégrés au cœur de Drupal pour en augmenter les fonctionnalités de base et le rendre plus flexible et plus puissant dès l’installation de départ.
La création de contenus
Le module « Field », anciennement CCK est un module qui a été intégré au noyau Drupal 7. Le module était tellement utilisé par la communauté que les développeurs de Drupal ont jugés bon et à juste titre, de l’intégrer au noyau du CMS.
Il permet la création de formulaires de création de «noeuds» et est très puissant. Rien ou presque n’est infaisable avec ce module.
Il permet non seulement de créer des formulaires pour les administrateurs mais également pour les utilisateurs, avec autant de champs et de types de champs que nécessaires.
D’autres modules peuvent lui être ajoutés tels que par exemple :
- «Link» qui permet d’ajouter facilement des liens dans ses nœuds
- «Field Group» qui permet de créer des groupes de champs pour rendre le formulaire plus lisible.
- «MaxLength» qui permet de restreindre certains types de champs à un nombre maximum de caractères.
L’internationalisation (multilinguisme)
Drupal permet grâce au module «Internationalization», depuis intégré dans le noyau Drupal 8, connu également sous le nom de «i18n», de traduire l’intégralité de l’interface et des contenus y compris de l’administration.
Très complet, mais parfois un peu complexe il est nécessaire de bien connaitre Drupal et d’avoir des modules optimisés pour la traduction.
Des modules comme «Translation Management Tool» (tmgtm) permettent de gérer le processus de traduction des contenus du site et même des les confier à des traducteurs humains, ou basés sur des système de traduction comme DeepL ou Google Translate par exemple.
La gestion multi-utilisateurs
L’un des gros points forts de Drupal réside dans sa capacité à collaborer à plusieurs, de manières très structurée. Il est possible de créer plusieurs types de collaborateurs (rôles) comme par exemple :
- Administrateur
- Contributeur
- Gestionnaire de clientèle
- Client
- Utilisateur authentifiés
- Utilisateur anonymes
- Etc.
Chaque rôle aura des droits personnalisés et personnalisables pour accéder à tel ou tel type de contenus, de menus, de fonctionnalités, etc.
Il est possible d’élargir encore cet éventail de possibilités de restriction avec des modules complémentaires comme «Field Permissions», «Custom Permissions» et bien d’autres.
La taxonomie (classement)
Un autre point fort de Drupal qui pourtant est assez incompris des néophytes, est la possibilité d’organiser les contenus grâce aux termes de taxonomie.
Moi-même, j’avoue avoir mis du temps à comprendre l’intérêt de la taxonomie. Je vais essayer de vous l’expliquer de sorte que vous soyez un peu plus familiarisé avec cette notion.
Imaginez par exemple que vous ayez un site internet de recettes de cuisines comme on en voit énormément.
Imaginez que sur ce site il y ait plus de 10 000 recettes avec différents ingrédients, temps de cuisson, origines, des entrées, des plats, des desserts, etc.
Comment faire pour organiser tout ce contenu et permettre aux utilisateurs de s’y retrouver sans avoir à parcourir les 10 000 recettes de votre site ? Et bien vous allez utiliser la taxonomie !
Vous allez tout d’abord créer des «vocabulaires» de taxonomie
- Origines
- Cuissons
- Types de plats
- Ingrédients
- …
Jusque-là, nous n’avons rien de suffisamment précis pour organiser correctement toutes vos pages. Alors nous allons créer des termes de taxonomie «parents».
- Origines
- Europe
- Amérique
- Asie
- Afrique
- …
- Cuissons
- Mijoté
- Grillé
- Frit
- …
- Types de plats
- Entrées
- Plats de résistance
- Fromages
- Desserts
- …
Vous avez compris le principe ! Mais cela ne suffit pas encore pour classer correctement toutes vos recettes. Il faut donc créer des termes «enfants».
- Origines
- Europe
- France
- Angleterre
- Allemagne
- …
- Europe
- Cuissons
- Mijoté
- A la poêle
- Au four
- …
- Grillé
- Au feu de bois
- A la poêle
- …
- Mijoté
- Types de plats
- Entrées
- Chaudes
- Froides
- …
- Entrées
C’est un peu long, certes, mais diablement efficace ! Pourquoi ? Car quand vos internautes vont créer des recettes, vous allez leur demander de renseigner ces informations dans le formulaire de création de contenus.
Les visiteurs eux, n’auront plus qu’à cliquer sur un terme de taxonomie pour trouver les recettes souhaitées, ils pourront également faire une recherche avec des mots clés.
Si l’un des termes de taxonomie est contenu dans la recherche, l’utilisateur aura des résultats pertinents.
Les contributeurs pourront avoir le droit, qui-plus-est, de rajouter des nouveaux termes de taxonomie si vous le souhaitez, ce qui allègera votre travail et rendra votre système de taxonomie très performant.
La gestion multi-sites
Drupal, à condition de s’y prendre comme il faut dès le début, est aussi très performant dans la gestion multi-sites.
Comme son nom l’indique, il s’agit de créer plusieurs sites en ayant qu’une seule infrastructure, qu’un seul serveur, et surtout, d’avoir une base commune de modules, de thèmes, et même de contenus selon le résultat souhaité.
Il est également possible d’avoir des modules spécifiques à un site et ainsi de ne pas alourdir inutilement les autres.
D’avoir un thème différent pour chaque site si l’on veut, d’utiliser des bases de données différentes ou bien encore d’utiliser la même base de données avec des préfixes différents pour chaque site.
Le e-commerce
Introduit sous Drupal 6 en 2007 par le module «Ubercart» le e-commerce a entamé une petite révolution au sein de Drupal.
En effet, le succès du module a provoqué la création d’une sorte d’écosystème Drupal spécialement conçu pour le commerce en ligne.
Nommée Drupal Commerce, le module est le digne successeur de Ubercart et permet de mettre en place une boutique en ligne sur Drupal.
Drupal Commerce connait depuis sa création un énorme succès, concurrençant directement les plus grand acteurs du marché que sont «Magento», «Prestashop» et «Woocommerce».
Le e-commerce compterait plus de 15 000 boutiques en lignes créées avec Drupal (6% du marché français selon LEPTIDIGITAL) et pas des moindres :
- Tesla – le fabricant de véhicules électriques
- Weber – le fabricant de barbecues
- Wilson – la marque de sport
- Interflora – boutique en ligne de fleurs
- …
Pour plus de références, je vous invite à consulter le showcase de Drupal Commerce.
Bien entendu, il y a bien d’autres fonctionnalités disponibles au sein de Drupal et encore plus en ajoutant des modules complémentaires, mais je ne peux pas, dans un seul article, vous détailler tout cela.
C’est pourquoi j’ai décidé de créer une rubrique «Drupal» dans mon blog afin de vous apporter régulièrement des conseils et des astuces spécialement pour Drupal ou je donnerais quelques conseils sur l’utilisation et la configuration de modules, je proposerais des listes de modules utiles par type de fonctionnalité, etc.
Quelques sites qui utilisent Drupal
Si après la lecture de cet article, vous n’êtes pas convaincu que Drupal est la meilleure solution pour créer votre site internet, voici une liste de sites qui est loin d’être exhaustive parmi les plus de 1 millions de sites web utilisant Drupal à ce jour :
Quelques sites web Drupal Français
- unesco.org – l’Organisation des Nations unies pour l’éducation, la science et la culture
- cartier.com – Le bijoutier
- afp.com – l’Agence France Presse
- sncf.com – la compagnie de transports en communs
- ameli.fr – Le site de l’assurance maladie pour les assurés
- ouest-france.fr – Le média français
- societegenerale.com – La banque Société Générale
- laposte.fr – Le site web de La Poste
Quelques sites web Drupal à l’international
- docusign.com – Le gestionnaire de signature électronique
- zoho.com – Le CRM
- lenovo.com – Le fabricant de matériel informatique
- udemy.com – Le site internet de cours en ligne
- panasonic.com – Le fabricant d’appareils électroménager
Et ce n’est qu’un petit aperçu issu du site trends.builtwith.com que vous pouvez consulter pour une liste plus exhaustive.
Découvrez le projet Drupal réalisé pour le groupe Farinia
Un site web moderne réalisé avec Drupal qui présente les filiales du groupe, ses différents marchés et expertises.
Chaque filiale personnalise son univers et publie des contenus de manière autonome.
Alors, convaincu ?
C’est maintenant à vous de choisir si oui ou non vous souhaitez utiliser Drupal pour la création de votre site web et j’espère que vous ferez le bon choix !
En tous cas, si vous souhaitez savoir quel serait le coût éventuel de la création de votre site web avec Drupal, n’hésitez pas à me demander un devis ou à me poser vos questions en me contactant depuis le formulaire de contact !
Vous pouvez également poser vos questions à la suite de cet article dans les commentaires, j’y répondrais avec plaisir.
Vous pouvez aussi partager cet article en cliquant sur l’un des boutons de partage qui se trouve plus bas. Je vous en serais reconnaissant !
Merci pour ce partage
Merci pour ce partage
Bonjour,
Bonjour,
Vos arguments sont très convaincants. Il faut reconnaitre que Drupal offre des fonctionnalités que l’on ne trouve sur aucun autre CMS. De ce côté, il est tout à fait normal que la plateforme créée soit différente d’une autre.
En même temps, son utilisation n’est pas donnée à tout le monde. Au risque de ne pas avoir le contrôle de ses activités, il est parfois mieux de se tourner vers un CMS plus facile à manipuler. Après, c’est une question de goût et de besoin, comme quoi, on ne peut savoir sans essayer.
Super article Richard je suis
Super article Richard je suis convaincu à 2000%