...du verbe Drupaler (1er groupe)

Créer un module Drupal en un temps record

22. Mars 2012 - 10:28 -- Wilfrid

Il n'est pas rare d'avoir un peu la peur (ou la flemme pour les moins courageux) de créer un nouveau module. Notamment car pour les moins expérimentés, il faut aller mettre les mains dans le camboui.

Petit article de blog, donc pour faciliter la tâche des développeur "noobs" comme plus expérimenter et démontrer ô combien il est facile de venir se brancher sur Drupal, surtout avec le générateur de code de Drupalons.fr !

Démonstration :  

-  Trouvez-vous un nom machine pour votre module (nous prendons ici le nom machine mon_module).

-  Créez ensuite un répertoire mon_module dans votre installation (généralement dans sites/all/modules).

-   Puis créez vote .info (déclaration du module) : utilisez le générateur de code du .info et collez-le dans un fichier mon_module.info (dans un répertoire sites/all/modules/mon_module).

-   Puis créez le .install (déclaration des bases de données à installer / désinstaller, suppression des variables, etc.)/

Vous aurez préalablement créé votre table (ou vos tables) dans MySQL, ou via le module data et vous utiliserez le module schema pour générer la déclaration Drupal, à coller à l'endroit indiqué par le générateur de code.

-   Enfin, créez votre .module. Son contenu va bien entendu dépendre de l'action à réaliser : plusieurs générateurs de code existent également (création de formulaire, création de liens AJAX, de fenêtre modale, etc.).

-  Vous pouvez également créer une page de configuration qui comprendra également les droits d'accès. Le code du formulaire peut être généré via le module Form Builder.

Pour intégrer votre module avec Views, utilisez également le module data (il ne faut pas que la table soit déjà déclarée par un module pour la voir apparaître). Une fois la déclaration à Views faite, il est également possible de déclarer sa table à VBO (Views Bulk Operations) afin de réaliser des opérations sur les lignes si désiré, par exemple pour gérer l'administration des éléments (cf. cet autre générateur de code). [Note : cette partie fonctionne pour Drupal 6 uniquement : pour Drupal 7, allez voir du côté du module Code Generator].

3.666665
Average: 3.7 (18 votes)
Votre vote: Aucun(e)

Commentaires

Soumis par Jeff (non vérifié) le

Bonjour,
Je suis en train de créer un nouveau module et j'ai besoin d'utiliser les fonctions déclarées dans un autre module. Comment faire pour appeler les fonction d'un autre module dans le module que je suis en train d'écrire?
Merci d'avance

Soumis par Wilfrid le
Simplement en appelant la fonction si celle-ci se trouve dans le .module. Si elle se trouve dans un fichier include (.inc généralement), il faut inclure le fichier via la fonction Drupal module_load_include.

Soumis par Jeff (non vérifié) le

J’essaie de créer un module avec un formulaire qui, une fois rempli donne lieu à une requête sur une base et le résultat de la requête est affiché sur la même page.
Mais je voudrai aussi que quand j'édite une ligne d'une de ma table dans la base de données, que le résultat soit affiché dans le même formulaire.
Merci

Soumis par Jeff (non vérifié) le

Merci Wilfrid,
J'ai réussi à créer mon formulaire et j'ai pu le remplir pour insérer les données dans ma BDD. Je voudrai maintenant récupérer une ligne de mon tableau dans ma BDD et l'afficher le même formulaire afin de pouvoir la modifier. Je sais qu'il faudra utiliser la requête UPDATE dans une fonction, mais comment écrire une telle fonction? La même question avec la requête DELETE.
Merci

Soumis par Anonyme (non vérifié) le

Bonjour,
J'ai créé mon module et je veux faire une liaison entre ce module et views. Comment je peux faire cela ?
Merci d'avance

Soumis par Thomas le
Ca veut dire quoi faire une "liaison"? Tu devrais d'abord apprendre comment fonctionne l'API de Drupal notament le système de hook

Ajouter un commentaire

Texte simple

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Image CAPTCHA