En utilisant views-view.html.twig
Comme point de départ, je peux afficher {{ rows }}
, Mais je veux parcourir chaque champ de chaque ligne pour les agréger et les styliser.
Dans Drupal 7, j'utilise dpm(rows)
pour localiser (dans le tableau) où le contenu, l'étiquette etc. Mais kint
ne semble pas me fournir le même information. Quelqu'un peut-il aider?
Dans views-view.html.twig n'est pas approprié pour styliser votre ligne et vos champs.
Pour les styliser, vous devez d'abord remplacer le modèle "views_view_'format_style '" (style de format spécifié lorsque vous modifiez/créez une vue). Ici, vous pouvez styliser la ligne et accéder aux variables "champs" (utilisez kint (ligne) pour les voir).
Quelque chose comme:
{% for row in rows %}
{%
set row_classes = [
default_row_class ? 'views-row',
]
%}
{{ kint(row) }} {# devel #}
<h2> {{row.content['#node'].getTitle()}} </h2> {# access fields #}
<div{{ row.attributes.addClass(row_classes) }}>
{{ row.content }}
</div>
{% endfor %}
Pour les champs de style, son meilleur modèle de champ de remplacement.
Par exemple field--node--body--article.html.twig
:
{% set mode = element['#view_mode'] %}
{% if label_hidden %}
{% for item in items %}
{% if mode == 'full' %}
<div{{ attributes }}>{{ item.content }}</div>
{% elseif mode == 'teaser' %}
<p{{ attributes }}>{{ item.content }}</p>
{% endif %}
{% endfor %}
{% else %}
<div{{ attributes }}>
<div{{ title_attributes }}>{{ label }}</div>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
</div>
{% endif %}