Paragraphs module を使用してコンポーネントを作成しています。次に、コンテンツタイプを作成し、参照フィールドとして段落を追加します。
段落のフォームには、コンテンツ作成者がdivの背景色の色名を選択できるフィールド(リスト)があります。各段落には3つの値(pacific_blue、smokey_white、white)があります。
ただし、選択した値をサイトに表示せずに取得しようとしています。
フィールドが無効になっていない限り、このコードを使用して値を取得し、適切な背景色でdivをスタイルするクラスを追加できます。
<div class="c14a {{ content.group_wrap.field_color_backgroud.0["#markup"] }}">
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
</div>
では、「管理表示」で無効になっているフィールドの値を取得するにはどうすればよいですか?
どうも...
わかりました。自分の質問に答えるつもりです。私の状況では、これが最もエレガントなオプションだと思います。
解決策は'not' disable any fieldです。次に、テンプレートで必要なフィールドを出力します。このように、あなたは価値がありますが、それをビジターに出力していません。
<div class="c14a {{ content.field_background.0["#markup"] }}">
<div{{ attributes.addClass(classes) }}>
{{ content.field_title }}
</div>
</div>
あなたにそれを追加してみてください hook_preproccess_node 変数に。
次のスニペットのようなものがあなたを助けるかもしれません。
THEMENAME.theme
function THEMENAME_preprocess_node(&$vars) {
$node = $vars['node'];
if(isset($vars['node']) && $vars['node']->getType()=='YOUR_CONTENT_TYPE_MACHINE_NAME') {
$values = $node->field_color_backgroud->entity->getValue();
$vars['myvar'] = $values[0];
}
}
次に、TWIGファイル{{ myvar }}
使えるようになる。
Display SuiteとParagraphsを一緒に使用していて、フォーマットと作成した特別なトークンフィールドを保持したい場合は、自己回答の質問を拡張して、without
twig =フィルタは、表示したくないフィールドを除外するのに最適です。CSSクラスとしていくつかのフィールドを使用し、それらを非表示にするカスタムテンプレートを次に示します。
<{{ ds_content_wrapper }}{{ attributes.addClass('ds-1col', 'clearfix') }}>
{{ title_suffix.contextual_links }}
{% set bgcolor = content.field_background_color.0['#markup'] %}
{% set angles = content.field_skew.0['#markup'] %}
<div class="wrapper {{ bgcolor | lower }} {{ angles | lower | replace({' ':'_'}) }}">
{{ ds_content | without('field_background_color', 'field_skew') }}
</div>
</{{ ds_content_wrapper }}>