Drupal 8のhook_node_viewの代替とは何ですか?


7

Drupal 8 Beta 14を使用しており、ティーザービューモードでノードオブジェクトを編集したいと考えています。hook_node_viewDrupal 8で削除されたとおりです。ノードの編集に使用できる代替フックまたはその他の方法は何ですか?それであるhook_ENTITY_TYPE_viewか、hook_entity_viewまたはいくつかの他の事?

ありがとうございました。

回答:


17

hook_node_view()実際には削除されていません。呼び出される方法が変更されました。ご指摘のとおり、現在はで処理されていhook_ENTITY_TYPE_view()ます。

したがって、次のいずれかを使用できます。

hook_entity_view()

または

hook_node_view()

特にノードをターゲットにしている場合は、後者の方が意味があります。


クライヴありがとう、hook_node_view選ばれました。しかし、どこに定義されているのでしょうか。NodeRSSContentTest.phpファイルでのみ見つかりました。第二にhook_ENTITY_TYPE_view、私が何をしても、決して呼ばれることはありません。なぜそうなのですか?
rashidkhan

1
ENTITY_TYPEはプレースホルダーであるため、実際のエンティティタイプに置き換える必要があります(hook_node_viewノード、hook_user_viewユーザー、hook_profile2_viewprofile2エンティティなどに置き換えます)
Clive

7

hook_node_viewD8バージョン8.1.1の例を以下に示します

function mymodule_node_view(array&$ build、\ Drupal \ Core \ Entity \ EntityInterface $ entity、\ Drupal \ Core \ Entity \ Display \ EntityViewDisplayInterface $ display、$ view_mode){
   $ build ['body'] [0] ['#text'] = 'これは新しく変更されたコンテンツ本文です';
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.