Drupal, prononciation à l’anglaise du mot hollandais "druppel" qui veut dire goutte, est un logiciel qui appartient à la famille des CMS (Système de gestion de contenu). Il possède un très grand nombre de modules pour gérer les publications, l’organisation et les droits d’accès d’une communauté d’utilisateurs.
Drupal a comme fonctions caractéristiques un espace utilisateur (biographie, contact, liste des publications), un espace de création de contenu (workflow, suivi de modification et éditeur WYSIWIG possible), un forum et une galerie d’images intégrés, un système de template en PHP très flexible, la possibilité de recevoir le contenu par email ou logiciel, une administration extrêmement complète (automatisation, cache, url rewrite, etc) qui peut demander l’ajout de modules complémentaires. Drupal possède des caractéristiques très particulières lui permettant de gérer un flux important d’information. Le système de taxonomie permet d’associer plusieurs mots clés aux contenus et de créer une gestion dynamique des catégories avec autant de niveaux que nécessaire. De plus, les contenus sont classés et listés par ordre de publication, alphabétique ou selon un facteur "poids" attribué à chacun. Très puissant, ce système complique notablement la gestion d’un contenu hiérarchique et stable bien que de nombreuses solutions palliatives existent (un module spécifique est en cours de développement).
Par ailleur ses modules communautaires sont extrêmement nombreux et complets (sondage, formulaire, newsletter, messagerie, chat, enquête). Le fonctionnement communautaire peut être étendu par des modules permettant la création de groupes d’utilisateurs, de blog individuel, d’accès restreint... L’utilisateur peut aussi installer des modules de gestion de recettes, de livres ou de liens. Et puis, là où les autres CMS se contentent des champs "Titre" et "Body" pour les contenus, obligeant à créer tout le contenu soi même (en HTML avec ou sans éditeur intégré [1], ou avec une syntaxe Wiki, Textile ou Markdown), Drupal permet de créer les champs que l’on souhaite. Par exemple un "ficheproduit.module" permettant d’éditer les champs "Reference", "Couleur", "Marque", etc. Tout ces champs seront ensuite appelés dans un template HTML/CSS qui se chargera de l’habillage graphique. Pour utiliser cette fonctionnalité, deux solutions : créer soi-même un module de contenu sur mesure en PHP, ce qui suppose de bien connaître le fonctionnement de Drupal ; soit installer le module "Flexinode" qui permet de créer des contenus avec les champs que l’on veut directement dans l’admin, et sans avoir besoin de coder.
Il n’y a pas encore de module d’installation automatique [2]. L’installation doit se faire "à la main" certes, mais il n’y a que deux choses à faire : configurer la base de données et modifier le fichier sites/default/settings.php pour renseigner les informations de connections à la base de données, ensuite tout le reste se fera via l’interface d’administration de Drupal à l’exception d’éventuelles modifications du thème (template) que vous aurez choisi. Il est également possible d’utiliser un module pour affecter une licence unique ou laisser les utilisateurs choisir une licence Creative Commons "sur mesure".
Ce logiciel peut apparaître assez proche de Mambo par exemple car les thèmes sont visiblement plus souples que les mises en page rigides de PHPNuke ou Xoops. Mais Drupal n’est pas bloqué sur un système de template, vous pouvez choisir le moteur de template que vous souhaitez, mais celui qui semble le mieux c’est PHPTemplate car il permet d’écrire directement du PHP dans votre thème. Drupal peut donc fonctionner sans tableaux. De nombreux thèmes sont disponibles pour changer l’apparence de votre site, et on retrouve des thèmes communs avec d’autres CMS (comme le thème Kubrik par exemple).. Drupal propose un ensemble plus cohérent, plus puissant, plus rapide et léger que Mambo, mais ne possède pas encore sa simplicité de mise en publication, son graphisme, son installateur automatique et une gestion simplifiée des menus hiérarchiques.