Какая альтернатива hook_node_view в Drupal 8?

7

Я использую Drupal 8 Beta 14 и хочу редактировать объект узла в режиме просмотра тизера. Как hook_node_viewудалено в Drupal 8. Какой альтернативный хук или каким-либо другим способом я могу использовать для редактирования узла? Является ли это hook_ENTITY_TYPE_viewили hook_entity_viewили какой -либо другой предмет?

Спасибо.

rashidkhan
источник

Ответы:

17

hook_node_view()на самом деле не был удален, способ, которым он вызывается, просто изменился. Как вы упомянули, теперь это обрабатывается hook_ENTITY_TYPE_view().

Так что вы можете использовать:

hook_entity_view()

или

hook_node_view()

Последнее будет иметь больше смысла, если вы нацеливаетесь именно на узлы.

Клайв
источник
Спасибо, Клайв, hook_node_viewвыбран. Но мне интересно, где это определено? Я мог найти его только в файле NodeRSSContentTest.php. Во-вторых hook_ENTITY_TYPE_view, мне никогда не звонят, что бы я ни делал. Почему это так?
Рашидхан
1
Потому что ENTITY_TYPEэто заполнитель - он должен быть заменен на фактический тип объекта (так что было бы hook_node_viewдля узла, hook_user_viewдля пользователя, hook_profile2_viewдля PROFILE2 сущности, и так далее)
Клайв
7

Вот пример для hook_node_viewв D8 версии 8.1.1

функция mymodule_node_view (массив & $ build, \ Drupal \ Core \ Entity \ EntityInterface $ entity, \ Drupal \ Core \ Entity \ Display \ EntityViewDisplayInterface $ display, $ view_mode) {
   $ build ['body'] [0] ['# text'] = 'это новое тело измененного содержимого';
}
Ану Мэтью
источник