Drupal
Drupal est un système de gestion de contenu Web (CMS) à même de créer et gérer des sites web d’informations structurées et classifiées.
Il permet de créer une grande variété de sites, du blog personnel au site communautaire ou d’information.
Il peut être utilisé pour gérer des sites collaboratifs regroupant forum d’échanges, annonces, agendas d’évènements, sessions de conférences, gestion de groupes de travail.
Caractéristiques de base
* Architecture en modules rendant le produit facilement extensible, grâce à une API
* Permissions basées sur des rôles pour définir les actions autorisées, les contenus visibles et les contenus éditables
* Contenu totalement indexé pour le système de recherche
* Support des blogs, forums, sondages, commentaires et fils RSS
* Interface unique pour le front-end et le back-end
* Suivi des logs, statistiques de visite
* Aide en ligne
Autres fonctionnalités :
Quelques détails des principales fonctionnalités : rôles, types de contenu, classification, présentation du contenu et modules complémentaires.
Rôles
Suivant l’importance du rôle de l’utilisateur, l’interface se voit enrichie de menus d’administration et de possibilités d’édition du contenu.
Les rôles sont définissables très finement, en autorisant ou non des actions dans chaque domaine de fonctionnalités.
Par ex. tel “administrateur” pourra gérer les types de contenu et leur classification, tel autre les utilisateurs, un troisième les forums et les commentaires, et un autre jouer uniquement le rôle de modérateur.
Typiquement, on aura les rôles: visiteur (anonyme), rédacteur, responsable de rubrique ou d’équipe, administrateur.
Types de contenu
En dehors des contenus de type “commentaire”, “billet personnel” (blog), “sujet de discussion” (forum) et “sondage” (poll), on distingue principalement 3 types de contenus prédéfinis :
* “image”: une image avec son format réduit (thumbnail) et une description.
* “page”: conseillé pour les contenus qui constituent en eux-mêmes une page Web (statique ou dynamique), propre au site pour les pages personnelles par exemple.
* “récit” (story): conseillé pour les informations souvent simples et courtes, destinées à être affichées en listes.
Cette distinction a pour effet de proposer des catégories d’indexation spécifiques.
Il existe encore un contenu prédéfini “livre” (book) adapté à la rédaction collaborative de livres à contenu hiérarchisé en chapitres, sous-chapitres, etc.
On a en outre la possibilité de définir son propre type de contenu, grâce à un module additionnel au choix, soit “flexinode”, soit “CCK” (Content Construction Kit) apparu depuis la v. 4.7 de Drupal.
Classification
La puissance et l’originalité de Drupal réside dans sa gestion très évoluée de la classification des données selon un système taxinomique (taxonomy) dynamique.
La classification peut être simple, multiple, hiérarchisée, et même multi-hiérarchique (un terme d’indexation peut avoir plusieurs parents).
On n’est pas limité à 2 niveaux hiérarchiques seulement, comme dans beaucoup de CMS.
Les termes d’indexation (ou labels, tags) sont groupables en “vocabulaires” au sein desquels les termes peuvent être associés entre eux (related terms) et pour lesquels on peut définir des synonymes.
Une API existe pour accéder aux fonctions reliées à la taxinomie.
Cette gestion de la taxinomie permet par ex. ceci :
* indexer les informations sur la hiérarchie des services d’une organisation.
* générer un glossaire des informations classé par termes, avec synonymes et renvois vers des termes reliés.
* un laboratoire de recherche pourra indexer ses publications sur ses auteurs et sur la revue, grâce à des vocabulaires ‘Revues’ et ‘Auteurs’.
Il faut noter la simplicité d’accès aux informations, par termes d’indexation, grâce à de simples urls, par ex. http://chemin-site/?q=taxonomy/term/37,94,125 génèrera la liste des publications (id. 37), pour l’année 2004 (id. 94), pour un chercheur donné (id. 125).
Présentation du contenu
Le contenu et la présentation sont bien séparés (XHTML 1.0 Transitional, CSS).
Des templates (moteur officiel ‘phptemplate’ depuis la v. 4.7) gouvernent la présentation des “nodes”, des commentaires, blocs, boîtes, ou tout type donnée défini par l’utilisateur.
