Drupal, Comment créer un module ?

Drupal est un système de gestion de contenu (CMS en anglais) libre et open-source publié sous la licence publique générale GNU et écrit en PHP, qui existe depuis 2001.

Drupal possède un noyau assez léger et peut être customisé avec des modules. Cela lui offre une grande flexibilité, mais nécessite de faire le tri parmi plus de 5 500 modules.

Certains considèrent Drupal comme un framework en raison de son API.

Une des particularités de Drupal, par rapport à d'autres CMS, est que son BackOffice (partie administrative du site) est lié à son front office. C'est à dire que les administrateurs éditent le contenu dans la même charte graphique que les visiteurs. Cependant à l'usage cela rend le travail plus productif.

Composition de Drupal

Drupal se compose en 5 couches :

  • 1ère couche : le cœur du système appelé aussi DATA(NODES), c’est ici que se trouve le conteneur des nodes (nœuds) et des données.

Avant d’afficher quoique ce soit, il faut le saisir en tant que données.

  • 2ème couche : les MODULES, ce sont des plug-ins qui peuvent faire partie du cœur de Drupal ou être créés.

Ils permettent ainsi d'ajouter de nouvelles fonctionnalités au site.

  • 3ème couche : les BLOCS et les MENUS, ils peuvent être affichés à différents endroits de votre thème et peuvent avoir des paramétrages indépendants qui influenceront leur affichage dans certaines pages en fonction du type d’utilisateurs.
  • 4ème couche : les permissions (USER PERMISSIONS), c’est ici que l’on paramètre les accès des utilisateurs, l’attribution de rôles.
  • 5ème couche : le gabarit du site (TEMPLATE) est majoritairement constitué de XHTML et de CSS.

On y insère le contenu du système aux endroits appropriés. On utilise généralement $content (pour les utilisateurs basiques de Drupal) et $node (pour les développeurs, car le $node contient les données brutes).

Quelques Sites utiles :

Comment créer un module:

Un module peut être une chose assez simple sous Drupal. Nous allons créer un module qui ne fait rien.

Il faut donner un nom à un dossier. Nous allons créer le dossier "first_module".

Dans l'arborescence de Drupal, tous les modules se trouvent dans le dossier "modules".

Je vous conseille de séparer vos propres modules dans un sous dossier de "modules".

Je crée alors un dossier "mes_modules" dans le dossier modules. Cela permettra lors d'un upgrade de version de conserver ses propres modules.

Dans le dossier "mes_modules" nous allons créer le dossier "first_module".

Attention le nom du dossier est important car le même nom devra être utilisé à plusieurs endroits par la suite.

Pour créer un module sous Drupal, il suffit d'avoir 2 fichiers.

Dans notre cas, nous allons ajouter ces 2 fichiers dans le dossier "fisrt_module". Ces 2 fichiers doivent avoir le même nom que le dossier.

Nous allons donc créer un fichier "first_module.info" et un fichier "first_module.module".

Le fichier "first_module.info" contient les informations sur le module first_module.

Le fichier "first_module.module" contient le code PHP du module.

Voilà le code minimum à insérer dans le fichier.info :

;Ceci est un commentaire de mon premier module
package="Mes Modules"
name = "First Modules"
description = "Mon premier module de test."
project = "first_module"
version = "6.x-1.0"
core = 6.x
  • package: indique dans quelle catégorie le module doit être affiché.
  • name et description: seront affichés dans le panneau d'administration des modules.
  • project: reprend le nom du module (qui est aussi le nom du dossier).
  • version: indique la version du module.
  • core: prévient Drupal que le module est seulement compatible avec sa version 6.x. Tout autre version de Drupal empêchera le module de s'activer.

Si vous avez besoin d'une dépendance avec un autre module, il faut alors ajouter la clause dependencies = autre_module.

Pour ajouter des commentaires, il suffit d'utiliser le symbole ; suivi du texte du commentaire.

Le fichier .module

C'est lui qui va héberger les hooks que nous souhaitons implémenter avec du code PHP. Pour l'instant, il ne fait rien.
Notre fichier sera tout simplement :

<?php 
?>

Nous avons maintenant fini notre premier module Drupal.

Pour voir notre module, connectez-vous avec un profil ayant les droits de gérer les modules.

Il suffit alors d'aller dans /admin/build/modules pour voir apparaître notre module dans la liste.

Nous allons maintenant ajouter une fonction à notre module.

Dans le fichier "first_module.module", nous allons ajouter la fonction bonjour.

Il faut obligatoirement que le nom de la fonction commence par le nom de notre module.

Dans notre cas:

<?php
function first_module_bonjour($nom)
{
	print ("<br/>Bonjour ".$nom);
}
?>

Nous allons utiliser notre fonction dans notre template du theme, par exemple.
Modifiez le fichier template de votre theme.

//teste que le module first_module est actif.
 
if(module_exists("first_module"))
{
	//Appel de la fonction présente dans le module first_module	
	first_module_bonjour("Netapsys");
 
}

Il ne nous reste maintenant plus qu'à activer notre module.

First Module activation

Et vous devriez voir apparaître sur votre site "Bonjour Netapsys".

Voilà, vous venez de réaliser votre premier module sous Drupal.

Laisser un commentaire

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

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.