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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.