O que é a alternativa hook_node_view no Drupal 8?

7

Estou usando o Drupal 8 Beta 14 e quero editar o objeto nó no modo de exibição de teaser. Como hook_node_viewé removido no Drupal 8. Qual é o gancho alternativo ou alguma outra maneira que eu possa usar para editar o nó? É hook_ENTITY_TYPE_viewou hook_entity_viewou alguma outra coisa?

Obrigado.

rashidkhan
fonte

Respostas:

17

hook_node_view()não foi realmente removido, a maneira como é chamada acabou de mudar. Como você mencionou, agora é tratado por hook_ENTITY_TYPE_view().

Então você pode usar:

hook_entity_view()

ou

hook_node_view()

O último faria mais sentido se você estiver segmentando nós especificamente.

Clive
fonte
Obrigado Clive, hook_node_viewé escolhido. Mas eu estou querendo saber onde é definido? Eu poderia encontrá-lo apenas no arquivo NodeRSSContentTest.php. Em segundo lugar, hook_ENTITY_TYPE_viewnunca é chamado, não importa o que eu faça. Por que é tão?
Rashidkhan #
11
Porque ENTITY_TYPEé um espaço reservado - ele precisa ser substituído com o tipo de entidade real (por isso seria hook_node_viewpara um nó, hook_user_viewpara um usuário, hook_profile2_viewpara uma entidade profile2, e assim por diante)
Clive
7

Aqui está o exemplo para o hook_node_viewD8 versão 8.1.1

função mymodule_node_view (matriz e $ build, \ Drupal \ Núcleo \ Entidade \ EntidadeInterface $ entidade, \ Drupal \ Núcleo \ Entidade \ Exibição \ EntityViewDisplayInterface $ exibição, $ view_mode) {
   $ build ['body'] [0] ['# text'] = 'este é um novo corpo de conteúdo alterado';
}
Anu Mathew
fonte