Como criar um gancho?

18

Como posso criar meu próprio gancho (semelhante ao que o núcleo do Drupal cria) para outros módulos do Drupal utilizarem?

markdorison
fonte

Respostas:

20

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.phpcriando funções de stubs vazias hook_NAMEcom comentários da documentação .

Pierre Buyle
fonte
6
+1 sobre a documentação, que é um novo padrão de codificação do Drupal 7 e muitos módulos de contribuição começaram a usá-lo também para o D6. Observe que, em vez de uma função vazia, é ainda melhor quando você fornece um exemplo de implementação para mostrar o que pode ser feito com esse gancho.
Berdir 7/03/11
11
Normalmente, você fornece o código para o gancho listado em MODULE.api.php se houver uma implementação real desse gancho.
kiamlaluno
0

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 triggermódulo para ver este novo gancho na guia nó.

M ama D
fonte