Como criar um módulo vazio? [fechadas]

15

Qual é o módulo válido mais básico que se pode criar no Drupal?

Seria útil ter um plano simples disponível, para quem está começando a usar o Drupal.

Letharion
fonte

Respostas:

26

As instruções abaixo permitem criar um módulo vazio e são úteis para quem está começando a criar um módulo. Se você tiver problemas para colocar seu primeiro módulo em funcionamento ou até mesmo aparecer no Drupal, leia todas as instruções abaixo.

Drupal 8

Um projectdeve ter pelo menos

  1. Um nome de máquina.
  2. Um arquivo de informações yaml com o nome do nome da máquina, no formato module-machine-name.info.ymlcom os seguintes atributos:
    1. name: Um nome humanamente legível
    2. type:Um tipo, definindo ser a module.
    3. core:A principal versão principal do Drupal com a qual o módulo é compatível 8.x, nesse caso.
  3. Um arquivo de módulo vazio, nome no formulário module-machine-name.module

O Drupal procura por módulos nesses locais, como visto na raiz da web:

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

Tecnicamente, o Drupal também procura por módulos core/modules, mas nunca se deve colocar módulos lá, portanto, não está na lista acima.

Um exemplo de estrutura de módulo, para um módulo com o nome da máquina helloworld, ficaria assim:

/modules/helloworld/helloworld.info.yml

/modules/helloworld/helloworld.module

Observe que as informações e o arquivo do módulo são exatamente iguais ao nome da máquina, o que é importante.

O arquivo do módulo pode estar vazio, mas o arquivo de informações deve conter alguns valores mínimos para que o Drupal o reconheça como um módulo. Para o nosso módulo helloworld, isso pode se parecer com:

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

Se você seguir as instruções acima, poderá conseguir um novo módulo listado no site do Drupal, embora ele não faça nada, neste estágio.

Drupal 7

Um módulo deve ter pelo menos

  1. Um nome de máquina.
  2. Um nome humanamente legível
  3. Um arquivo de informações com o nome do computador.
  4. Um arquivo de módulo vazio.

Para ser carregado pelo Drupal, ele também deve definir com qual versão principal ele é compatível.

Além disso, o Drupal procura por módulos nesses locais:

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

Tecnicamente, o Drupal também procura por módulos modules, mas nunca se deve colocar módulos lá, portanto, não está na lista.

Um exemplo de estrutura de módulo, para um módulo com o nome da máquina helloworld, ficaria assim:

sites/all/modules/helloworld/helloworld.info

sites/all/modules/helloworld/helloworld.module

Observe que as informações e o arquivo do módulo são exatamente iguais ao nome da máquina, o que é importante.

O arquivo do módulo pode estar vazio, mas o arquivo info deve conter o nome humanamente legível do módulo e a versão principal com a qual o módulo é compatível.

Para o nosso módulo helloworld, isso pode se parecer com:

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

Se você seguir as instruções acima, poderá conseguir um novo módulo listado no site do Drupal, embora ele não faça nada, neste estágio.

Letharion
fonte
e também sites/default/... apenas dizendo ...
Tenken
Você está absolutamente certo, consertou. :) O que me lembra que devo verificar o pedido e verificar se ele está correto.
Letharion
Para o drupal 8, agora você só precisa do módulo nome da máquina.info.yml. O arquivo .module não é mais necessário para ter um módulo ativado. Não é que seja muito útil, mas é possível :) #
0313 sublinhado
11
D8: os arquivos .module e .profile não são mais necessários. drupal.org/node/2217931
sobi3ch
11
Drupal 8: Que tal drupal generate:module?
Screenack
8

Para o Drupal 8, como a pergunta mencionou um plano, acho que mencionaria o projeto do Drupal Console .

Uma vez instalado, é possível gerar o código do módulo (e outras coisas, como andaimes para entidades personalizadas, plugins, etc.).

Para gerar um módulo básico na linha de comando: drupal generate:module. Uma é solicitada através de uma coleta básica de informações e deixada com os arquivos do módulo no final:

Geração do módulo do console Drupal

jhedstrom
fonte