Développement web

Drupal : Faut-il le considérer comme un CMS ou un Framework ? Décryptage

Drupal

Article par

Drupal est un système de gestion de contenu (CMS) libre, open source et écrit en PHP. Dries Buytaert est le développeur initial de ce projet, à partir de 2000 à l’université d’Anvers. Il le définit alors comme étant un « assembleur rapide de site web » (Rapid Website Assembler).

Cet outil de gestion de contenu web s’adresse à la fois à des débutants et à des programmeurs experts. Sa flexibilité lui permet de répondre à la très grande majorité des besoins du marché : sites institutionnels, blog, annuaire, communautaire, etc.

Comment utiliser Drupal ?

Il est utilisable tel que fourni sur toute base LAMP, WAMP ou MAMP avec la version de PHP 4.3.3 ou supérieur tournant dans une BDD MySQL 4.1 ou supérieur, mais aussi sous PostgreSQL de version 7.3 ou supérieur, visible sur un navigateur qui supporte le JavaScript. D’après son créateur, environ 500 000 sites en avaient recours à partir de septembre 2009.

Drupal est entièrement programmé en PHP. L’ensemble est constitué de modules gravitant autour d’un noyau très léger. Chaque module est en quelque sorte une bibliothèque de fonctions qui enrichit l’application et augmente ses possibilités.

L’une des forces de Drupal se traduit par la capacité d’interaction des modules entre eux. Cependant, la contrepartie de cette flexibilité est la complexité. Autre revers de la médaille, c’est notamment le fait de trouver « le » module qui correspondra au mieux à vos besoins.

Un autre point qui distingue Drupal des autres CMS est que le site et son interface d’administration sont intimement liés. Cela signifie que les administrateurs éditent leur contenu dans le même contexte graphique ou presque que celui des visiteurs. Au premier abord, cette fonctionnalité peut-être déroutante, mais elle s’avère particulièrement productive et intuitive par la suite.

Comme tous les CMS, l’architecture d’un site Drupal repose sur un modèle de contenu spécifique qui permet de structurer l’information. L’outil a recours à un système de nœud couplé à une taxonomie particulièrement flexible.

Quels sont les avantages de Drupal ?

Drupal est utile pour la création des applications web, notamment des sites internet, mais aussi des intranets/extranets. Le plus grand intérêt de Drupal réside dans la création de sites web complexes sans la nécessité de recréer ni de changer les fonctionnalités basiques et courantes à chaque nouveau projet. Ce qui permet de se concentrer sur d’autres éléments importants comme le SEO et référencement, la personnalisation de contenu, les thèmes et templates, l’ergonomie, etc.

Par rapport à un développement « custom », Drupal est d’habitude l’option la plus abordable et la plus rapide. Elle a une meilleure capacité de maintenance, si une page devient inadaptée ou si des modifications ou des mises à jour sont indispensables.

Rapidité de mise en place

Drupal permet d’obtenir un site fonctionnel et évolutif en quelques clics sans avoir à écrire une seule ligne de code, mais aussi d’installer le multisite en une seule fois.

Modularité

On peut étendre les possibilités en ajoutant des modules. Ceux-ci sont très nombreux, proposés par la communauté et toujours sous licence libre GPL. Cette architecture permet aux programmeurs de réaliser des modules personnalisés afin d’étendre les fonctionnalités sans pour autant modifier le corps de Drupal.

Robustesse de son API

La qualité du code et la robustesse de son interface de programmation (API) font que Drupal est également présenté comme un environnement de développement PHP (Framework). On parle alors de « Content Management Framework ».

Le déploiement

Un autre avantage de Drupal est de pouvoir être déployé sans aucune connaissance en PHP.

Quand choisir Drupal ?

Drupal est un CMS open-source qui offre de nombreuses fonctionnalités et une grande flexibilité pour la création de sites web. Cependant, il peut être difficile de décider s’il est le bon choix pour un projet spécifique. Ci-après les situations dans lesquelles Drupal est le choix le plus approprié pour la création d’un site web :

  • Lorsque le client l’a clairement demandé : Il est vrai que les autres CMS se spécialisent dans des fonctionnalités spécifiques et peuvent fournir un produit final plus facile à utiliser. Toutefois, Drupal est aussi capable de répondre à de nombreux besoins différents en matière de création de sites web.
  •  Lorsque le site est très orienté communautaire et que du contenu utilisateur doit être généré : on peut se reposer sur les fonctionnalités communautaires de Drupal.

Est-ce un CMS ou un Framework ?

En résumé, Drupal se situe entre le CMS et le Framework. Il est mieux dimensionné qu’un CMS et moins flexible qu’un Framework. Drupal n’est pas orienté objet, il ne propose pas de système de gabarit (MVC) propre.

Les idées proposées par Drupal sont très intéressantes. Elles s’inspirent des meilleures pratiques de génie logiciel. Malgré tout, la non-utilisation de la programmation-objet est un manque important à l’outil.

Quelles modules intégrer sous Drupal ?

Ceux qui disposent d’un site sous Drupal se demandent certainement des modules qu’ils devraient y intégrer. Voici quelques-unes des extensions, appelées « modules », susceptibles de les intéresser et qu’ils pourront installer :

Administration

DHTML Menu

Ce module rend le menu de navigation dynamique. Il est utile pour l’administrateur, mais aussi les utilisateurs, car il permet d’éviter de devoir cliquer plusieurs fois pour naviguer entre les différentes pages du site. Autrement dit, les sous-menus sont disponibles en cliquant l’élément de menu les contenant.

Administration Menu

Ce module vient ajouter un bandeau en haut du site afin d’y cataloguer toutes les fonctionnalités pour l’administrer. Cela évite la nécessité de naviguer dans les multiples pages d’administration de site web d’où son avantage pour gagner du temps.

Contenu

CCK

Intégré au core dans la version 7 de Drupal, il permet de créer des types de contenus adaptés à tous les besoins. Besoin de structurer une fiche technique pour les moteurs d’un site ? Ce module la crée et la configure rapidement. Il suffit alors d’enregistrer les moteurs via une interface prévue. Il est possible d’insérer des images, des champs sous différents formats, etc.

Node Import

Ce module permet d’importer de grandes quantités de contenus en une seule fois dans un site à partir d’un fichier CSV ou XML. Il est capable d’importer des utilisateurs et de générer les mots de passe, des termes et tous types de nœuds en général.

Views

Ce module est utile pour créer des affichages personnalisés pour les contenus du site afin de les présenter avec efficacité et pertinence aux visiteurs. Lors de la création de pages, il permet par exemple d’élaborer une section regroupant les derniers commentaires publiés dans ces rubriques. Il est ensuite possible de déterminer la manière dont ils seront affichés.

Images

Ce module est indispensable pour gérer l’importation d’images dans des galeries, avec les redimensionnements automatiques et traitements nécessaires. Pour pouvoir traiter les images, il lui faut ImageApi.

ImageAssist

Ce module vient compléter le précédent et offre la possibilité d’insérer facilement des images dans les articles à travers une fenêtre dédiée. L’administrateur peut ainsi parcourir ses galeries, choisir l’image qui lui convient et indiquer la manière avec laquelle elle sera affichée. C’est au module de créer le code indispensable à son insertion dans l’article.

Forum

Forum

Il permet de créer des forums, sous-forums, conteneurs. Il est aussi pratique pour les organiser selon les besoins de l’administrateur. Bien qu’il ne s’agisse pas encore de phpBB, ce module est très utile, surtout si le forum n’est pas le cœur du site.

Classification

Tagadelic

Ce module sert à générer des nuages de tags (ou mots clés) et d’en configurer les options d’affichage. Il est pratique pour les sites avec des contenus variés et multiples. En cliquant sur l’un des tags, les visiteurs pourront alors voir tous les articles ou pages associés.

Taxonomy Menu

Il permet de créer des menus dynamiques basés sur la taxonomie du site afin de faciliter la navigation et l’accès à l’information aux visiteurs. Il est pratique pour les sites évoluant rapidement et ceux dont l’administrateur ne contrôle pas les taxonomies (cas des étiquettes).

E-commerce

Ubercart

Il est indispensable pour créer des sites de commerce en ligne avec toutes les fonctionnalités utiles : paniers d’achats, processus de commande, paiements en ligne, etc.

Userpoints

Il sert à créer des systèmes de points pour récompenser la fidélité des utilisateurs en fonction de leur participation et de leur engagement sur le site.

The following two tabs change content below.
Partagez!

4 commentaires

  • Appels d'offres SGC

    Il existe un nombre croissant de CMS (système de gestion de contenu) open source. De nouveaux apparaissent sans cesse et les plus anciens s’améliorent de plus en plus avec le temps. Avec un bon millier de CMS disponibles sur le web, il est assez difficile de trouver celui dont vous avez besoin. Voici quelques recommandations pour faire le bon choix.

  • LaÏla

    Bonjour. svp pourquoi dites-vous « Drupal n’est pas Orienté Objet, il ne propose pas de système de gabarit (MVC) propre. Les idées proposées par Drupal sont très intéressantes, elles s’inspire des meilleurs pratiques de génie logiciel. Cependant, la non-utilisation de la programmation objet est un manque important à l’outil. »? et les noeuds alors? ne sont-ils pas basés sur le principe ou la notion « objet »? en plus Drupal utilise le langage PHP et manipule bien les entités au complet avec les notions d’héritage.Cyprien Roudet en parle si bien dans son livre « Atelier drupal, un cms pas comme les autres ». je me trompe? expliquez moi davantage alors, parce qu’il semblerait que je comprends pas encore. Merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *