Como posso criar meu próprio gancho (semelhante ao que o núcleo do Drupal cria) para outros módulos do Drupal utilizarem?
Como posso criar meu próprio gancho (semelhante ao que o núcleo do Drupal cria) para outros módulos do Drupal utilizarem?
Respostas:
Na verdade, você não cria ganchos. Você usa funções auxiliares como module_invoke_all()
, module_invoke()
ou drupal_alter()
para invocar todas as funções correspondentes ao padrão de nome esperado. As funções invocadas são geralmente encontradas com module_implements()
.
Mesmo que não seja necessário para os ganchos funcionarem, a melhor prática é documentá-los MODULE.api.php
criando funções de stubs vazias hook_NAME
com comentários da documentação .
Você também pode criar hook, usando hook_trigger_info, você pode criar um novo hook e, no seu módulo, você precisa implementá-lo. Como exemplo, suponha que você queira criar um arquivo morto de nós e colocar nós antigos nele. Você também deseja acionar um gancho quando a operação de arquivamento estiver concluída. vai ser algo assim
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
Após definir o gancho, seu módulo é responsável por implementar o gancho e as ações usando module_invoke () ou module_invoke_all () .
Você pode ativar o trigger
módulo para ver este novo gancho na guia nó.