Quelle est l'alternative hook_node_view dans Drupal 8?

7

J'utilise Drupal 8 Beta 14 et je souhaite éditer l'objet nœud en mode vue d'accroche. Comme il hook_node_viewest supprimé dans Drupal 8. Quel est le crochet alternatif ou d'une autre manière que je peux utiliser pour modifier le nœud? Est-ce hook_ENTITY_TYPE_viewou hook_entity_viewquelque chose d'autre?

Je vous remercie.

rashidkhan
la source

Réponses:

17

hook_node_view()n'a pas vraiment été supprimé, la façon dont il est appelé vient de changer. Comme vous l'avez mentionné, il est désormais géré par hook_ENTITY_TYPE_view().

Vous pouvez donc utiliser:

hook_entity_view()

ou

hook_node_view()

Ce dernier aurait plus de sens si vous ciblez spécifiquement les nœuds.

Clive
la source
Merci Clive, hook_node_viewc'est choisi. Mais je me demande où est-il défini? Je ne pouvais le trouver que dans le fichier NodeRSSContentTest.php. Deuxièmement, on hook_ENTITY_TYPE_viewne m'appelle jamais, quoi que je fasse. Pourquoi en est-il ainsi?
rashidkhan
1
Parce que ENTITY_TYPEc'est un espace réservé - il doit être remplacé par le type d'entité réel (ce serait donc hook_node_viewpour un nœud, hook_user_viewpour un utilisateur, hook_profile2_viewpour une entité profile2, etc.)
Clive
7

Voici l'exemple de hook_node_viewD8 version 8.1.1

function mymodule_node_view (array & $ build, \ Drupal \ Core \ Entity \ EntityInterface $ entity, \ Drupal \ Core \ Entity \ Display \ EntityViewDisplayInterface $ display, $ view_mode) {
   $ build ['body'] [0] ['# text'] = 'ceci est un nouveau corps de contenu modifié';
}
Anu Mathew
la source