BasicおよびArticleコンテンツタイプで使用される1つのフィールド(field_tabs)があります。基本ページコンテンツタイプにはカスタムビューモード(view_mode_vertical)があり、記事コンテンツタイプには別のカスタムビューモード(view_mode_horizontal)があります。
基本ページ(デフォルトの表示モード)ディスプレイの管理
記事(デフォルトの表示モード)ディスプレイの管理
field.html.twig では、どのようにして表示モードを検出できますか?
私たちが探求した2つのオプションは、 ノードテンプレート またはフィールドテンプレート(フィールドを使用)でした。これを行うには、view_modeを検出するロジックを1か所に追加するだけで済みます。 3番目または4番目のview_modeを追加する場合は、コードに別のelseif(またはスイッチケース)を追加するだけです。
サンプルTwig探していたコード:
{% if view_mode == 'view_mode_vertical' %}
<div class="tabs__vertical">...</div>
{% else %}
<div class="tabs__horizontal">...</div>
{% endif %}
Field.html.twigで、ビューモードをどのように検出できますか?
フィールドテンプレートには、ノードテンプレートのようなビューモードの最上位の変数はありません。あなたはそれを作成することができ、あなたのtwigコードはうまくいくはずです:
{% set view_mode = element['#view_mode'] %}
別のオプションは、テンプレート名の提案を追加することです。 表示モードのフィールドテンプレート を参照してください。
どちらも有効なオプションです。 Twigロジックに大きく依存する多くのプロジェクトがありますが、他のプロジェクトはPHPプリプロセスとテンプレート名の提案フックで好みます。