Drupal 7 – Changer l’ordre d’exécution des implémentations d’un hook

Il se peut qu'au cours d'un projet, vous ayez besoin que votre implémentation de hook soit appelée après celle d'un autre module. C'est souvent le cas pour le hook_form_alter() par exemple.

Il y a plusieurs manières de contrôler l'ordre, notamment en modifiant le poids de votre module dans la table «system». La plus propre et pratique est d'utiliser le hook_module_implements_alter() via ce lien car :

  • C'est un tableau contenant la liste des implémentations d'un hook
  • Il contient le nom du hook actuellement appelé.

Exemple

Imaginons deux modules : module_a et module_b.

Tous les deux implémentent le hook_form_alter(). Si vous voulez être sûr que l'implémentation du module_b soit appelée après celle du module_a, vous pouvez utiliser ce code PHP :

code PHP

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.