Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Démarrer

Référence en anglais sur drupal.org : 16 Mars 2010 - 15h09 - http://drupal.org/node/206754


Comme indiqué dans l'introduction, nous utiliserons dans ce tutoriel l'exemple d'un module qui liste des liens vers du contenu tel que des billets de blog ou des discussions de forums récemment créés (plus exactement : créés il y a tout juste une semaine). Cette page du tutoriel expose comment créer le fichier module initial et son dossier.

Donner un nom à votre module

La première étape dans la création de module consiste à lui choisir un nom abrégé. Ce nom abrégé sera utilisé dans tous les fichiers et dans tous les noms de fonctions du module. Il doit donc débuter par une lettre et ne doit contenir, selon les conventions de nommage de Drupal, que des lettres en minuscule et des signes soulignés. pour cet exemple, nous choisirons onthisdate comme nom abrégé.

Remarque importante : si le nom abrégé est utilisé à la fois comme nom de fichier du module et comme préfixe de fonction, ce n'est pas seulement pour répondre aux conventions de nommage. Quand vous implémentez des "hooks" Drupal (voir plus loin dans ce tutoriel), Drupal ne reconnaîtra vos fonctions d'implémentation du hook que si leurs noms sont préfixés avec le nom du fichier module .

Il est également primordial que le nom abrégé porté par votre module ne soit pas déjà utilisé par un thème de votre site.

Créer un dossier et un fichier pour le module

Le choix du nom abrégé étant onthisdate étant fait, créez un dossier dans votre installation Drupal : sites/all/modules/onthisdate. Vous aurez peut-être besoin de créer d'abord un dossier sites/all/modules.

Créez ensuite un fichier PHP et sauvegardez-le sous le nom onthisdate.module dans le dossier sites/all/modules/onthisdate. Depuis Drupal 6.x, sites/all/modules est l'endroit où placer les modules qui ne font pas partie du core (et sites/all/themes l'endroit où placer les thèmes qui ne font pas partie du core), les fichiers spécifiques à un site vont dans les dossiers du site. Cela vous permet d'effectuer les mises à jour du core et des modules plus facilement, sans effacer vos personnalisations. Si vous avez une installation multi-site et que votre module n'est destiné qu'à un seul site, vous pouvez le placer dans sites/votre-dossier-du-site/modules.

Les fichiers modules débutent avec la balise d'ouverture PHP immédiatement suivie d'un balise ID CVS placée dans un commentaire inline. La balise ID CVS, $Id$, est un token que le système de contrôle de version de Drupal.org complétera avec des informations de révision et d'auteur. Il vaut mieux prendre l'habitude d'écrire cette balise dans votre module, même si vous ne pensez pas le diffuser sur Drupal.org ou pas. Une balise ID similaire est placée dans tous les autres fichiers associés à votre module.

<?php
// $Id$
?>

Cette balise ID n'est pas une syntaxe spéciale du PHP et elle n'est là que pour le système de contrôle de versions. Aussi, elle doit être placée dans une ligne de commentaire. On le répète, cette balise sera automatiquement complétée et vous pouvez désormais l'oublier.

Le module n'est pas encore opérationnel : il n'a pas été activé. Nous le ferons plus loin dans ce tutoriel.

Normes de programmation

Comme indiqué dans Normes de programmation, omettez la balise PHP fermante ?>. La mettre pourrait causer un comportement erratique sur certaines configurations de serveur (notez que les exemples du manuel montrent cette balise fermante uniquement pour des raisons de formatage de texte, vous ne devez pas la mettre dans votre code à vous).

Toutes les fonctions de votre module utilisées par Drupal sont nommées {nom_du_module}_{hook}, où hook est un suffixe de nom de fonction pré-déclaré. Drupal appellera ces fonctions pour obtenir des données spécifiques, les déclarer selon ce modèle indique à Drupal où regarder. Nous en reparlerons bientôt.