O que são os Hooks do Drupal?

Em: Drupal

17 jan 2009

Os hooks (ganchos em inglês) são funções PHP pré-definidas, criadas para promover a integração dos módulos com o núcleo do sistema.

O programador, ao criar um novo módulo, extenderá essas funções, respeitando apenas os parâmetros a serem recebidos e o valor retornado, ficando a implementação propriamente dita totalmente adequável às suas necessidades.Outras funções poderão ser definidas no módulo para ajudá-lo na implementação dos hooks ou executar as suas ações específicas.

Na api do drupal você encontra uma lista completa de todos os hooks disponíveis com suas respectivas descrições.

A implementação dos hooks inicia-se no uso correto da nomenclatura, que se dá substituindo a palavra hook no nome da função pelo nome do módulo.

Por exemplo, para implementar o hook_menu() em um módulo chamado notícias, vá até a pasta deste módulo, abra o arquivo noticias.module e crie uma função chamada noticias_menu(), esse hook é responsável por criar ítens de menu e chamadas de página através de url (não detalharemos o hook_menu() para não fugirmos do escopo desta matéria).

O código desse exemplo ficaria assim:

<?php
/**
 * Implementação do hook_menu
 */
function noticias_menu() {
  $items = array();
 
  // Cria um ítem de menu
  $items['noticias'] = array(
    'title' => 'Noticias',
    'page callback' => 'noticias_page',
    'access arguments' => array('access content'),
    'type' => MENU_NORMAL_ITEM,
  );
  // Cria uma url para uma página
  $items['noticias/lista'] = array(
    'title' => t('Notícias'),
    'page callback' => 'noticias_list',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );
 
  return $items;
}
?>

Com o uso do hook_menu(), o drupal irá incluir os links do módulos de notícias na geração do menu do sistema.

Qualquer dúvida ou sugestão, é só comentar!!

1 Resposta para O que são os Hooks do Drupal?

Avatar

francis

abril 13th, 2010 às 09:13

muito bom, era o que eu estava procurando.

Comentário

Sobre o autor

Rubens Gadelha é formado em Webdesign & Webmaster pela Universidade Estadual Vale do Acaraú - UVA e cursa atualmente o curso de bacharelado em Sistemas de Informação na Faculdade 7 de setembro (Fa7). Dedica algumas horas do dia à boa leitura e autodidática.

Atualmente trabalha como Desenvolvedor Web, focado na linguagem Java com bancos de dados Oracle e Postgres. Possui experiências anteriores na linguagem PHP e no Zend Framework, bibliotecas de javascript como JQuery, bancos de dados MySQL e no uso de CMS’s como Drupal.

Categorias

Arquivos