Comment puis-je créer mon propre hook (similaire à ceux créés par Drupal core) pour que d'autres modules Drupal puissent les utiliser?
18
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 hooks fonctionnent, la meilleure pratique consiste à les documenter en MODULE.api.php
créant des fonctions de stubs vides hook_NAME
avec des 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
Après avoir défini le hook, votre module est responsable de l'implémentation du hook et des actions à l'aide de module_invoke () ou module_invoke_all () .
Vous pouvez activer le
trigger
module pour voir ce nouveau crochet sous l'onglet nœud.la source