Comment créer un module vide? [fermé]

15

Quel est le module valide le plus basique que l'on puisse créer dans Drupal?

Il serait utile de disposer d'un plan simple, pour toute personne débutant avec Drupal.

Létharion
la source

Réponses:

26

Les instructions ci-dessous permettent de créer un module vide et sont utiles à tous ceux qui débutent avec la construction de modules. Si vous rencontrez des problèmes pour faire fonctionner votre premier module, ou même pour apparaître dans Drupal, assurez-vous d'avoir lu toutes les instructions ci-dessous.

Drupal 8

Un projectmust have au moins

  1. Un nom de machine.
  2. Un fichier d'informations yaml nommé d'après le nom de la machine, sous la forme module-machine-name.info.ymlavec les attributs suivants:
    1. name: Un nom lisible par l'homme
    2. type:Un type, définissant comme un module.
    3. core:La version principale de Drupal avec laquelle le module est compatible 8.x, dans ce cas.
  3. Un fichier de module vide, nom dans le formulaire module-machine-name.module

Drupal recherche des modules dans ces emplacements, comme vu depuis la racine Web:

  1. /modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

Techniquement, Drupal recherche également des modules core/modules, mais il ne faut jamais y placer de modules, donc il ne figure pas dans la liste ci-dessus.

Un exemple de structure de module, pour un module avec le nom de la machine helloworld, ressemblerait à ceci:

/modules/helloworld/helloworld.info.yml

/modules/helloworld/helloworld.module

Notez que les informations et le fichier de module sont nommés exactement de la même manière que le nom de la machine, ce qui est important.

Le fichier module peut être vide, mais le fichier info doit contenir quelques valeurs minimales pour que Drupal le reconnaisse comme module. Pour notre module helloworld, cela pourrait ressembler à:

name: 'Hello world module to demonstrate module building'
core: 8.x
type: module

Si vous suivez les instructions ci-dessus, vous devriez pouvoir obtenir un nouveau module répertorié dans votre site Drupal, bien qu'il ne fasse rien, à ce stade.

Drupal 7

Un module doit au moins avoir

  1. Un nom de machine.
  2. Un nom lisible par l'homme
  3. Un fichier d'informations nommé d'après le nom de la machine.
  4. Un fichier de module vide.

Pour être chargeable par Drupal, il doit également définir avec quelle version de base il est compatible.

En outre, Drupal recherche des modules dans ces emplacements:

  1. sites/all/modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

Techniquement, Drupal recherche également des modules modules, mais il ne faut jamais y placer de modules, donc ce n'est pas sur la liste.

Un exemple de structure de module, pour un module avec le nom de la machine helloworld, ressemblerait à ceci:

sites/all/modules/helloworld/helloworld.info

sites/all/modules/helloworld/helloworld.module

Notez que les informations et le fichier de module sont nommés exactement de la même manière que le nom de la machine, ce qui est important.

Le fichier de module peut être vide, mais le fichier d'informations doit contenir le nom lisible du module et la version principale avec laquelle le module est compatible.

Pour notre module helloworld, cela pourrait ressembler à:

name = Hello world module to demonstrate module building
core = 7.x

Si vous suivez les instructions ci-dessus, vous devriez pouvoir obtenir un nouveau module répertorié dans votre site Drupal, bien qu'il ne fasse rien, à ce stade.

Létharion
la source
et aussi sites/default/... juste dire ...
tenken
Vous avez absolument raison, corrigez-le. :) Ce qui me rappelle que je devrais vérifier la commande et m'assurer qu'elle est correcte.
Letharion
Pour drupal 8, vous n'avez maintenant besoin que du module-machine-name.info.yml. Le fichier .module n'est plus requis pour avoir un module activé. Ce n'est pas très utile mais c'est possible :)
underound
1
D8: les fichiers .module et .profile ne sont plus nécessaires. drupal.org/node/2217931
sobi3ch
1
Drupal 8: Qu'en est-il drupal generate:module?
Screenack
8

Pour Drupal 8, puisque la question mentionnait un plan directeur, je pense que je mentionnerais le projet Drupal Console .

Une fois celui-ci installé, on peut générer du code de module (et d'autres choses comme des échafaudages pour des entités personnalisées, des plugins, etc.).

Pour générer un module de base de la ligne de commande: drupal generate:module. On est ensuite invité à travers une collecte d'informations de base et laissé avec les fichiers du module à la fin:

Génération de modules de console Drupal

jhedstrom
la source