Em: Drupal
17 jan 2009Os 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!!
Rubens Gadelha é formado em Webdesign & Webmaster (hoje Desenvolvimento de Web e Comércio Eletrônico) pela Universidade Estadual Vale do Acaraú - UVA e dedica algumas horas do dia à boa leitura e autodidática.
Atualmente trabalha como Programador Web, focado na linguagem PHP e no Zend Framework, bibliotecas de javascript como JQuery e o uso de CMS’s como Drupal. Os bancos de dados MySQL e PostGres também fazem parte do seu dia-a-dia.
Dedica suas horas vagas ao aprofundamento na linguagem Java