¿Qué es la alternativa hook_node_view en Drupal 8?

7

Estoy usando Drupal 8 Beta 14 y quiero editar el objeto de nodo en el modo de vista teaser. Como hook_node_viewse elimina en Drupal 8. ¿Cuál es el gancho alternativo o alguna otra forma que pueda usar para editar el nodo? ¿Es hook_ENTITY_TYPE_viewo hook_entity_viewalguna otra cosa?

Gracias.

rashidkhan
fuente

Respuestas:

17

hook_node_view()no se ha eliminado realmente, la forma en que se invoca ha cambiado. Como mencionaste, ahora lo maneja hook_ENTITY_TYPE_view().

Entonces puedes usar:

hook_entity_view()

o

hook_node_view()

Esto último tendría más sentido si se dirige específicamente a los nodos.

Clive
fuente
Gracias Clive, hook_node_viewes elegido. Pero me pregunto dónde se define? Solo pude encontrarlo en el archivo NodeRSSContentTest.php. En segundo lugar, hook_ENTITY_TYPE_viewnunca me llaman, no importa lo que haga. ¿Por que es esto entonces?
rashidkhan
1
Debido a que ENTITY_TYPEes un marcador de posición, debe reemplazarse con el tipo de entidad real (por lo que sería hook_node_viewpara un nodo, hook_user_viewpara un usuario, hook_profile2_viewpara una entidad profile2, etc.)
Clive
7

Aquí está el ejemplo de la hook_node_viewversión 8.1.1 de D8.

function mymodule_node_view (array & $ build, \ Drupal \ Core \ Entity \ EntityInterface $ entity, \ Drupal \ Core \ Entity \ Display \ EntityViewDisplayInterface $ display, $ view_mode) {
   $ build ['body'] [0] ['# text'] = 'este es un nuevo cuerpo de contenido alterado';
}
Anu Mathew
fuente