Come creare un gancio?


18

Come posso creare il mio hook (simile a quelli creati da Drupal core) per altri moduli Drupal da utilizzare?

Risposte:


20

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.phpcreando funzioni di stub vuote hook_NAMEcon commenti di documentazione .


6
+1 sulla documentazione, ovvero un nuovo standard di codifica di Drupal 7 e molti moduli contrib hanno iniziato a usarlo anche per D6. Si noti che invece di una funzione vuota, è ancora meglio quando si fornisce un'implementazione di esempio per mostrare cosa si può fare con quell'hook.
Berdir,

1
Di solito, si fornisce il codice per l'hook elencato in MODULE.api.php se esiste un'implementazione effettiva di quell'hook.
kiamlaluno

0

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 triggermodulo a vedere questo nuovo hook nella scheda del nodo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.