twig file:views-view-unformatted--view-machine-name.html.twig
{#
/**
* @file
* Default theme implementation to display a view of unformatted rows.
*
* Available variables:
* - title: The title of this group of rows. May be empty.
* - rows: A list of the view's row items.
* - attributes: The row's HTML attributes.
* - content: The row's content.
* - view: The view object.
* - default_row_class: A flag indicating whether default classes should be
* used on rows.
*
* @see template_preprocess_views_view_unformatted()
*
* @ingroup themeable
*/
#}
{% if title %}
<h3>{{ title }}</h3>
{% endif %}
{% for row in rows %}
{%
set row_classes = [
default_row_class ? 'views-row',
]
%}
<div{{ row.attributes.addClass(row_classes) }}>
{{ row.content }}
</div>
{% endfor %}
Title
とbody
fieldをコンマで区切って1行にしたい:
タイトル、本文
デバッグ中にこのビューの「タイトル」、「本文」、またはその他のフィールドの値を取得するにはどうすればよいですか?
Kint(title)とkint(body)を使用しましたが、機能しません。 debug = TRUE;
はservicesファイルにあります。
しかし、フォーマットされていないhtml twigでフィールド値を持つ方法を理解することはできません。
views-view-unformatted.html.twig で確認できるように、これは、表示したコメント付きコードが何を言っているかを示しており、フィールド変数はありません。したがって、このテンプレートはフィールドには使用されません。
利用可能な変数:
- title:この行グループのタイトル。空の場合があります。
- rows:ビューの行アイテムのリスト。
- attributes:行のHTML属性。
- content:行のコンテンツ。
- view:ビューオブジェクト。
- default_row_class:デフォルトクラスを行で使用するかどうかを示すフラグ。
ビューテンプレートでフィールドを使用する場合は、views-view-fields-[view-name] -- [machine-name] 。htmlを使用します。小枝。そこで、次のようにフィールドを印刷できます。
<span>{{ fields.title.content }},</span><span>{{ fields.body.content }}</span>
Kintを使用した方法を見つけました。views-view--unformatted.html.twigでフィールド値を取得できます
特定のフィールドが必要な場合
テキストフィールドの値を取得するには
_{{row.content['#row']._entity.field machine name[0].value}}
_
画像フィールドsrcを取得するには
{{file_url(row.content['#row']._entity.field machine name.entity.uri.value)}}
画像のalt、title、width、heightを取得するには
_{{row.content['#row']._entity.field machine name[0].alt/title/width/height}}
_
注:フィールドマシン名をフィールドマシン名に置き換えます
複数のフィールドをループする場合
_{% for i in range(0, 10) %}
{{ row.content['#row']._entity.body[i].value }}
{% endfor %}
_
生の値が必要な場合
_{% for i in range(0, 10) %}
{{ row.content['#row']._entity.body[i].value|raw }}
{% endfor %}
_
私はキントを使用する方法を考え出しました。
Views-view-unformatted.html.twig内で、次のコードを使用して個々のフィールドを表示します。
{% for row in rows %}
{{ row.content['#view'].style_plugin.render_tokens[ loop.index0 ]['{{ YOUR_FIELD_NAME }}'] }}
{% endfor %}
以下は、views-view-unformatted.html.twigファイルのフィールド値にアクセスするためのサンプルコードです。
{% for row in rows %}
{% set photo = file_url(row['content']['#row']._entity.field_page_photo.entity.fileuri) %}
<li><img src={{ photo }} class="img-responsive img-circle"></li>
{% endfor %}
twigファイルを使用してビューを上書きするには、3つのファイルを作成する必要があります。
1。 views-view--foobar.html.twig
2。 views-view-unformatted--foobar.html.twig
3。 views-view-fields--foobar.html.twig
3つのファイルすべての目的は次のとおりです。
1:メインビューテンプレートのデフォルトのテーマ実装。
2:未フォーマットの行のビューを表示するデフォルトのテーマ実装。
3:行のすべてのフィールドを表示するデフォルトのビューテンプレート。
ビューの各フィールドを出力するには、「views-view-fields--foobar.html.twig」を使用する必要があります。
以下はサンプルです:
<li>
<p>{{ fields.title.content }}</p> // Title field
<p>{{ fields.body.content }}</p> // Body field
<span>{{ fields.created.content }}</span> // Node authored date field
<a href="{{ fields.path.content }}" class="readmore"> read more </a> // Link to actual page
</li>
私の経験から、エンティティ構造の一部ではないフィールドの値をtwig views-views-unformatted--view-.html.twigで表示する簡単な方法はありません。
非常にtext (plain)
フィールドを出力します。 flag_field
、entity_reference
等々。
全体のコアコードを経由せずにこれを達成する必要があるため、このハックを作成する必要がありました。