Mon module personnalisé définit une entité personnalisée, qui étend la classe EntityAPIController. J'ai réussi à le faire fonctionner, c'est-à-dire à afficher des champs, etc. via mon fichier tpl.php personnalisé. Mais je voudrais créer une mymodule_preprocess_entity
fonction (comme suggéré ici ) pour ajouter des variables personnalisées au fichier tpl.php. Mais une telle fonction n'est pas en cours d'exécution (n'est pas appelée).
De plus, lorsque template_preprocess_entity(&$variables)
j'affiche cette entité, j'ai remarqué que la fonction de entity.module ne fonctionne pas non plus.
Que faut-il définir d'autre pour que la fonction de prétraitement de l'entité personnalisée soit appelée?
Réponses:
J'ai créé une
mymodule_preprocess(&$variables, $hook)
fonction générale et cela a montré que le nom de la fonction spécifique devrait êtremymodule_preprocess_myentity
. Oùmyentity
est le nom propre de l'entité.Donc, ce code fonctionne pour moi:
la source
Une approche plus générique:
Malheureusement,
module_implements()
ne vérifie pas si le thème actif implémente le hook de prétraitement.la source