Comment puis-je créer mon propre hook (similaire à ceux créés par Drupal core) pour que d'autres modules Drupal puissent les utiliser?
Comment puis-je créer mon propre hook (similaire à ceux créés par Drupal core) pour que d'autres modules Drupal puissent les utiliser?
Réponses:
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
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 à 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.