1. Créer un nouveau module

La création d'un module Drupal est finalement quelque chose d'assez simple. Ainsi, pour créer votre premier module, vous devrez simplement créer un répertoire et deux fichiers.

Nom du module

La première étape dans la création d'un module Drupal consiste à lui trouver un nom.

En réalité, chaque module Drupal possède deux noms :

  • Un nom humain: Il s'agit d'un titre composé d'un ou de plusieurs mots (maximum: deux ou trois). La première lettre du nom du module doit être une capitale. Si le nom du module est composé de plusieurs mots, ceux-ci seront séparés par un espace. Il est conseiller d'attribuer un nom qui reflète plus ou moins la fonction du module. Ainsi, un module chargé d'afficher un bulletin météo pourrait être intitulé Display weather, tandis qu'un module créant un calendrier personnalisé s'appelera Custom calendar.
  • Un nom machine: Il s'agit d'un nom utilisé en interne par Drupal. Ce nom ne peut être composé que de lettres alphabétiques minuscules (lower-case letters), de lettres alphabétiques majuscules (upper-case letters), de chiffres (digits) ou de caractères de soulignement (underscore characters). Auncun autre caractère n'est admis. Si nous reprenons les exemples ci-dessus, le nom machine du module Display weather pourrait être display_weather et le nom machine du module Custom calendar pourrait être custom_calendar.

En principe, le nom humain et le nom machine ne doivent pas nécessairement être identique (exemples: le nom machine du module contribué Chaos Tools est ctools, celui du module Display Suite est ds, etc). Toutefois, par convention et par soucis de clarté, il est préférable qu'ils se ressemblent. Il est également convenu que dans le nom machine d'un module, les majuscules soient remplacées par des minuscules.

Enfin, il est préférable que le nom (humain et machine) du module que vous souhaitez créé n'ait pas déjà été attribué à un module existant. Pour vérifier si un nom de module a déjà été attribué, il suffit de vous rendre sur le site de Drupal et de faire une recherche dans la liste des modules disponibles.

Où faut-il installer votre module ?

Maintenant, il importe de savoir dans quel répertoire nous installerons le module que nous allons créer ?

Si vous parcourez les fichiers et dossiers que Drupal a créé lors de son installation, vous constaterez qu'à la racine du site se trouve un répertoire intitulé ./modules. Disons-le sans plus attendre, ce n'est pas dans ce répertoire que vous installerez le nouveau module.

En fait, le répertoire ./modules contient les modules faisant partie du cœur de Drupal. Si vous souhaitez veiller à la stabilité de votre application Drupal, il importe de ne pas modifier ce répertoire et surtout de ne pas modifier le code des divers modules qu'il contient (certes, si vous modifiez le code des modules intégrés, le ciel ne vous tombera pas sur la tête, mais vous rendrez problématique les mises à jour du cœur de Drupal).

Les modules ne constituant pas le cœur de Drupal devront être installés dans le répertoire ./sites/all/modules. Celui-ci contiendra deux catégories de modules :

  • les modules contribués: Par convention, les modules que vous téléchargez à partir du site de Drupal sont appelés des modules contribués. Ils sont fournis librement par la communauté Drupal. Il est conseillé d'installer ces modules dans le répertoire ./sites/all/modules/contrib.
  • les modules personnalisés: Quant aux modules que vous avez développés spécifiquement pour une application Drupal, ils seront installés dans le répertoire ./sites/all/modules/custom.

Créer un répertoire pour le module

Le module que je vous propose de créé affiche simplement "Bonjour le monde !" dans une nouvelle page. Dès lors, j'ai choisi d'intituler ce premier module Hello world. Quant à son nom machine, je vous propose de l'appeller hello_world.

Une fois les noms de module déterminés, nous utilisons le nom machine pour créer le répertoire hello_world. Comme il s'agit d'un module personnalisé, nous devons créer ce nouveau dossier dans le répertoire ./sites/all/modules/custom. Autrement dit, le chemin complet de notre module Hello world est ./sites/all/modules/custom/hello_world.

C'est dans ce répertoire que nous allons créer deux fichiers vides dont les extensions sont respectivement .info et .module. Plus conrètement, nous allons utiliser le nom machine du module Hello world pour créer les fichiers hello_world.info et hello_world.module.