Come posso creare il mio hook (simile a quelli creati da Drupal core) per altri moduli Drupal da utilizzare?
Come posso creare il mio hook (simile a quelli creati da Drupal core) per altri moduli Drupal da utilizzare?
Risposte:
In realtà non si creano ganci. Si utilizzano funzioni di supporto come module_invoke_all()
, module_invoke()
o drupal_alter()
per richiamare tutte le funzioni corrispondenti al modello di nome previsto. Le funzioni invocate si trovano di solito con module_implements()
.
Anche se non è necessario che gli hook funzionino, la procedura migliore è documentarli MODULE.api.php
creando funzioni di stub vuote hook_NAME
con commenti di documentazione .
Puoi anche creare hook, usando hook_trigger_info puoi creare un nuovo hook e nel tuo modulo devi implementarlo. Ad esempio, supponiamo di voler creare un archivio di nodi e inserirvi vecchi nodi. Si desidera inoltre attivare un hook al termine dell'operazione di archiviazione. sarà qualcosa del genere
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
Dopo aver definito l'hook, il tuo modulo è responsabile dell'implementazione dell'hook e delle azioni usando module_invoke () o module_invoke_all () .
Puoi abilitare il trigger
modulo a vedere questo nuovo hook nella scheda del nodo.