Thay thế hook_node_view trong Drupal 8 là gì?


7

Tôi đang sử dụng Drupal 8 Beta 14 và tôi muốn chỉnh sửa đối tượng nút trong chế độ xem trêu ghẹo. Như hook_node_viewđã bị xóa trong Drupal 8. Cái móc thay thế hoặc một số cách khác mà tôi có thể sử dụng để chỉnh sửa nút là gì? Là nó hook_ENTITY_TYPE_viewhoặc hook_entity_viewmột số điều khác?

Cảm ơn bạn.

Câu trả lời:


17

hook_node_view()chưa thực sự bị xóa, cách nó được gọi đã thay đổi. Như bạn đã đề cập, bây giờ nó được xử lý bởi hook_ENTITY_TYPE_view().

Vì vậy, bạn có thể sử dụng:

hook_entity_view()

hoặc là

hook_node_view()

Cái sau sẽ có ý nghĩa hơn nếu bạn nhắm mục tiêu các nút cụ thể.


Cảm ơn bạn Clive, hook_node_viewđược chọn. Nhưng tôi tự hỏi nó được định nghĩa ở đâu? Tôi chỉ có thể tìm thấy nó trong tệp NodeRSSContentTest.php. Thứ hai hook_ENTITY_TYPE_viewkhông bao giờ được gọi, bất kể tôi làm gì. Tại sao nó như vậy?
rashidkhan

1
Bởi vì ENTITY_TYPElà một trình giữ chỗ - nó cần được thay thế bằng loại thực thể thực tế (vì vậy nó sẽ hook_node_viewdành cho một nút, hook_user_viewcho người dùng, hook_profile2_viewcho thực thể profile2, v.v.)
Clive

7

Dưới đây là ví dụ cho hook_node_viewphiên bản D8 8.1.1

chức năng mymodule_node_view (mảng & $ build, \ Drupal \ Core \ Entity \ EntityInterface $ entity, \ Drupal \ Core \ Entity \ Display \ EntityViewDisplayInterface $ display, $ view_mode) {
   $ build ['body'] [0] ['# text'] = 'đây là nội dung thay đổi mới';
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.