2

小枝を使用して Drupal 8 でテーマ ビューを構築しています。views-view-unformatted.html.twig テンプレートの row.content 変数で twig フィルターを使用したいと思います。

row.content は配列のようで、twig の文字列操作が機能しません。ただし、文字列としてページに出力されます (ビューは単なる分類用語のリストです)。

私がやりたいのは、出力をスラッグ化して、スペースを含む分類用語が有効なhrefを持つことができるようにすることです。以下のコードの置換フィルターを参照してください。

<ul class="nav nav-tabs" role="tablist">
{% for row in rows %}
  <li role="presentation" class="{{loop.first ? 'active' : ''}}">
    <a href="#{{row.content | replace({" ", "-"})}}" aria-controls="{{row.content}}" role="tab" data-toggle="tab">{{row.content}}</a>
  </li>
{% endfor %}
</ul>

これは単に出力されます<a href="#">。小枝の補間中に出力される生のテキスト値にアクセスする方法を知っている人はいますか?

ありがとう!

4

1 に答える 1

1

ビューでkintとdumpがクラッシュするため、私はこれに遭遇しました。ただし、ビットに到達するための簡単な回避策があります。これを、小枝ビュー スタイル テンプレートの{% for row in rows %} の下に置きます。

<ol>
{% for key, value in row.content %}
  <li>{{ key }}</li>
{% endfor %}
</ol>  

それを使用してページをロードすると、表示するキーが表示されます。次のダンプコマンドでそれぞれをチェックし、テストのために下に追加しました。

{{ dump(row.content['#row']) }}

上記のダンプは、#row のすべての商品を示していました。掘り下げて、_entity 内に必要なフィールドを見つけました (あなたにとっては異なる場合があります)。次に、スペースをダッシュ​​に置き換え、小文字を強制したいと考えました。

row.content ['#row'] 以降はすべて異なる可能性が高いため、上記の dump コマンドを使用して配列を少し掘り下げる必要があります。以下は、私が欲しかったものを手に入れた行です。

{{ row.content['#row']._entity.title[0].value|replace(' ', '-')|lower }}

以下は小枝テンプレートの例です。ファイル名については、 viewnameblock-3をセットアップに変更します。

views-view-unformatted--viewname--block-3.html.twig

{% for row in rows %}
    {%
        set row_classes = [
            default_row_class ? 'views-row',
            'something',
            'kint-cant',
        ]
    %}
    {# My field value unformatted #}
    <!-- {{ row.content['#row']._entity.title[0].value }} --> 

    <section{{ row.attributes.addClass(row_classes) }} id="{{ row.content['#row']._entity.title[0].value|replace(' ', '-')|lower }}">
        {{ row.content }}
    </section>
{% endfor %}

これを行う方法は他にもたくさんあると思いますが、スタイル テンプレートのビュー フィールドを印刷するための簡単な解決策として機能しました。これは非常に便利です。

于 2016-06-30T08:16:04.880 に答える