Qual è l'alternativa hook_node_view in Drupal 8?


7

Sto usando Drupal 8 Beta 14 e voglio modificare l'oggetto nodo in modalità vista teaser. Come hook_node_viewviene rimosso in Drupal 8. Qual è l'hook alternativo o in qualche altro modo che posso usare per modificare il nodo? È hook_ENTITY_TYPE_viewo hook_entity_viewo qualcos'altro?

Grazie.

Risposte:


17

hook_node_view()non è stato realmente rimosso, il modo in cui è invocato è appena cambiato. Come hai già detto, ora è gestito da hook_ENTITY_TYPE_view().

Quindi puoi usare:

hook_entity_view()

o

hook_node_view()

Quest'ultimo avrebbe più senso se scegli come target specifici nodi.


Grazie Clive, hook_node_viewviene scelto. Ma mi chiedo dove è definito? L'ho trovato solo nel file NodeRSSContentTest.php. In secondo luogo, hook_ENTITY_TYPE_viewnon viene mai chiamato, non importa quello che faccio. Perché è così?
rashidkhan,

1
Perché ENTITY_TYPEè un segnaposto - deve essere sostituito con il tipo di entità reale (quindi sarebbe hook_node_viewper un nodo, hook_user_viewper un utente, hook_profile2_viewper un'entità profile2 e così via)
Clive

7

Ecco l'esempio per hook_node_viewin D8 versione 8.1.1

funzione mymodule_node_view (array & $ build, \ Drupal \ Core \ Entity \ EntityInterface $ entity, \ Drupal \ Core \ Entity \ Display \ EntityViewDisplayInterface $ display, $ view_mode) {
   $ build ['body'] [0] ['# text'] = 'questo è un nuovo corpo di contenuto alterato';
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.