Como criar um módulo para Drupal 6 e 7

Como volta e meia vejo alguém penando na comunidade brasileira de Drupal para descobrir como criar um módulo para o Drupal, fui pesquisar no Google e não é que não achei nada objetivo na primera página de resultados mesmo? Vamos resolver de uma vez.

Atenção: vou simplificar algumas coisas para tornar mais fácil de explicar o básico. Após aprender o básico, você poderá alterar certas partes, mas enquanto você não dominar o Drupal, pode seguir da forma que estiver aqui, que funcionará. Se você tiver dúvida sobre aonde que pode mexer, provavelmente é porque ainda não domina o Drupal, então pode seguir as "regras daqui" numa boa ;)

Atenção 2: quando for necessário fazer algo diferente para o Drupal 6 ou 7, irei avisar

1 - O que é um módulo de Drupal?

R: uma pasta com alguns arquivos dentro, que precisa ficar dentro de "sites/all/modules". O exemplo que irei usar, o módulo "meuprimeiromodulo", deverá ficar em "sites/all/modules/meuprimeiromodulo"

2 - O que é necessário para um módulo funcionar?

R: dentro dessa pasta é necessário ter 2 arquivos(lembre que estou usando o nome "meuprimeiromodulo" como exemplo): "meuprimeiromodulo.module" e "meuprimeiromodulo.info". O arquivo ".info" tem as instruções sobre o módulo para o Drupal conhecê-lo. Basicamente, você terá algumas informações que servirão para você vê-lo na página de listagem de módulos. O arquivo ".module" é o que terá os códigos customizados que você irá criar. Vamos começar então.

Crie(dentro da pasta, obviamente) o arquivo "meuprimeiromodulo.info", com o seguinte conteúdo:

name = Meu Primeiro Módulo
description = Meu primeiro módulo
core = 6.x
version = 6.x-1.0

Veja na imagem como ficam o arquivo e a lista de módulos(o screenshot é do Drupal 6, mas no 7 fica igual):

Crie o arquivo "meuprimeiromodulo.module", com o seguinte conteúdo:

<?php

/**
  * Esse é o hook_menu() - Saiba mais em http://api.drupal.org/hook_menu
  */
function meuprimeiromodulo_menu() {
  $item['minha-pagina'] = array(
    'title' => 'Essa é a minha página',
    'page callback' => 'meuprimeiromodulo_pagina_para_dar_oi',
    'access callback' => TRUE,
    'type' => MENU_NORMAL_ITEM
  );
  return $item;
}

function meuprimeiromodulo_pagina_para_dar_oi() {
  $html = "Essa é a minha página";
  return $html;
}
?>

Tags: 

Categoria: