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.
On parle de “noeud” (node) pour désigner une information accessible par un identifiant.
On distingue aussi 3 “formats d’entrée” de données, personnalisables :
- Filtered HTML
- Full HTML
- PHP code
Un “nœud” peut recevoir plusieurs types de statuts : publié, à modérer, en page d’accueil, en tête de liste, nouvelle version.
Le statut “à modérer” peut, par défaut, être assigné au contenu créé par un rôle, s’il n’a pas l’autorisation “administrer les nœuds”.
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.
Modules complémentaires
Il en existe plusieurs centaines, qui ajoutent des fonctionnalités au logiciel de base : http://drupal.org/project/Modules
Modules communautaires
- “Organic Group” (OG modules)
- “CivicSpace” qui propose une version packagée de Drupal
Editeurs HTML
- FCKEditor
- Htmlarea
- Textile
- TinyMCE
- WYMeditor
Module LaTeX
Modules de localisation
Modules de “Mapping/Geocoding”
Modules d’Agendas et Calendriers
Modules de calcul
- Views Calc (tri de tables de résultats) :