大きなカスタムモジュールとテーマをDrupal 6から移行しています。参照を$node->body
と$node->teaser
に変換する方法がわかりません。フィールドではなくなったためです。ノードオブジェクトでね
このコードをプリプロセスフックで使用します。
$node = \Drupal::entityManager()->getStorage('node')->load($nid);
$view_builder = \Drupal::entityManager()->getViewBuilder('node');
$variables['node_full'] = $view_builder->view($node, 'full');
$variables['node_teaser'] = $view_builder->view($node, 'teaser');
$variables['body_full'] = $node->body->view('full');
$variables['body_teaser'] = $node->body->view('teaser');
そして小枝に
{{ node_full }}
{{ node_teaser }}
{{ body_full }}
{{ body_teaser }}
レンダリングされたノードを使用して、ビューモードをフル、ティーザー、またはカスタムビューモードに構成します。単一のレンダリングされたフィールドは、他のコードではうまく機能しません。
少し進歩しました。のようだ
{{ node.body.value|raw }} ** unsafe! **
うまく機能しますが、入力フィルターをスキップすると思います
{{ node.body.value }}
マークアップを示します。入力フィルターで本文を取得する方法はわかりませんが、マークアップをエスケープしません。
安全上の注意:
値が不要なユーザー入力から安全であることを保証できない場合は、生フィルターを使用しないでください。
あなたはtwigでボディを得ることができます:
{{ content }}
これをTHEME.themeファイルに追加した後:
function THEME_preprocess_node(&$variables) {
$node = &$variables['node'];
$node_array = $node->toArray();
$variables['node_teaser'] = $node_array['body'][0]['summary'];
}
あなたはそれをtemplates/node.html.twigで次のようにプルアップできます:
{{ node_teaser }}