Comment puis-je créer mon propre crochet (similaire à ceux Drupal core crée) pour d'autres modules Drupal à utiliser?
Vous ne créez pas réellement de crochets. Vous utilisez des fonctions d'assistance telles que module_invoke_all()
, module_invoke()
ou drupal_alter()
pour appeler toutes les fonctions correspondant au modèle de nom attendu. Les fonctions appelées se trouvent généralement avec module_implements()
.
Même s'il n'est pas nécessaire que les crochets fonctionnent, la meilleure pratique consiste à les documenter dans MODULE.api.php
en créant des stubs vides hook_NAME
fonctionne avec commentaires de documentation .
Vous pouvez également créer un hook, en utilisant hook_trigger_info vous pouvez créer un nouveau hook, et dans votre module, vous devez l'implémenter. Par exemple, supposons que vous souhaitiez créer une archive de nœuds et y placer d'anciens nœuds. Vous souhaitez également déclencher un hook lorsque l'opération d'archivage est terminée. ça va être quelque chose comme ça
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
Après avoir défini le hook, votre module est responsable de l'implémentation du hook et des actions utilisant module_invoke () ou module_invoke_all () .
Vous pouvez activer le module trigger
pour voir ce nouveau hook sous l'onglet node.