Menu principal

Como criar um módulo no Drupal 7

Bom dia!

Esse post irá ensinar a vocês a como criar uma estrutura básica de um módulo. Para podermos prosseguir num desenvolvimento mais avaçando do Drupal é extremamente necessário esse conhecimento, sem ele fica impossível de se fazer algo que não seja gambiarra. rsrsrs.

Então vamos lá!

Parte 1 - Criando módulos

Para você criar um módulo a primeira coisa importante que você precisa saber é:

  • Nunca se deve criar nada na pasta /modules que fica na raiz do projeto Drupal. Essa pasta é onde contém os módulos do core, por convênção e boa prática o recomendado é colocar os módulos de terceiros na pasta, sites/all/modules ou se tiver trabalhar com multisites sites/seusite/modules.

Com isso em mente podemos prosseguir para o próximo passo.

Um ótimo exemplo para saber como criar uma estrutura básica de um módulo é ver os que existem na pasta /modules da raíz do projeto. Se você for lá agora ver perceberá o seguinte:

Um módulo contém:

  • Uma diretório com nome do módulo em minúsculo, sem acentuação e espaços;
  • E dentro dessa pasta existirão 4 arquivos fundamentais (*.info, *.module, *.install, *.test).

Não preocupe agora com outros arquivos e pastas que você encontrar dentro de um módulo. O que faz realmente surgir um módulo no Drupal são esses arquivos. que vou explicar agora para que servem.

Arquivo .info (obrigatório criar)

O arquivo .info serve para descrever o que seu módulo será, podemos dizer que ele é um arquivo descritor. Sem ele o Drupal não consegue reconhecer o módulo na lista de módulos que existe na interface administrativa do sistema.

Dentro desse arquivo existe as seguintes informações:

name = Contrato (Mesmo nome usado na pasta do seu modulo)

description = "Descrição breve do que seu módulo fará."
package = Guga (É de qual pacote esse módulo pertencerá, caso você não ponha nada aqui o seu módulo aparecerá  no pacote Others)
dependencies[] = aluno (Esse parâmetro diz quais módulos que seu módulo depende para funcionar).
dependencies[] = print
;files[] = views/references_plugin_style.inc (Normalmente esse parâmetro é usado para carregar os arquivos de teste do seu módulo, também pode ser usado para carregar outras informações)
 
;Information added by drupal.org packaging script on 2011-05-12 (Descrição básica não é necessário escrever)
version = "7.x-0.1-alpha" (Aqui você declara que versão está seu módulo)
core = "7.x" (Aqui você diz de qual versão pertence seu módulo)
project = "Guga" (Esse parâmetro tem a mesma função que o package mas a partir da versão 7 do Drupal está entrando em deuso, então o recomendado é não usar mas, porém por questões de entendimento eu deixei aqui por que provavelmente você se irá se deparar com ele em muitos módulos ainda).
datestamp = "1305236816" (A data que seu módulo foi criado em formato timestamp para conseguir essa data nesse formata pasta executar esse comando no php echo time();)
 
Para informar que tal instrução é um comentário coloque ; (ponto e vírgula no início do comando).
 

Arquivo .module (obrigatório criar)

Este arquivo é o cérebro do seu módulo é a partir dele que tudo surge. Por enquanto não vamos se aprofundar nesse arquivo por que exige uma atenção muito especial e também por que envolve muitas áreas de desenvolvimento aqui dentro. Não há problema de deixar esse arquivo vazio.

Arquivo .install (não é obrigatório)

Este arquivo é utilizado para criar, atualizar e remover tabelas que seu módulo irá utilizar. Caso seu módulo não for criar uma tabela ou alterar uma outra, então não é necessário criar esse arquivo.

E o último arquivo.

Arquivo .test (não é obrigatório)

Este arquivo é muito importante caso você necessite criar um caso de test para seu módulo, a criação desses teste exige um conhecimento bem avançado da arquitetura Drupal. Mas para conhecimento geral é bom saber que existe uma maneira bastante organizada e profissional de criar teste de casos.

No final você terá a seguinte estrutura.

  • sites/all/modules/nomedoseumodulo
  • sites/all/modules/nomedoseumodulo/nomedoseumodulo.info
  • sites/all/modules/nomedoseumodulo/nomedoseumodulo.module

O restante como dito anteriormente não é necessário criar.

É isso. Qualquer dúvida estarei prontamente em responder!

© 2011 HelalFerrari.com. Drupal theme by Kiwi Themes.