Как настроить таргетинг на первый элемент в представлении Drupal?

У меня есть страница Drupal Views, на которой показаны все последние опубликованные статьи. Я хочу продемонстрировать последнюю статью в другом div отдельно, а затем зациклить все остальные статьи.

Это мой код для цикла, который находится в файле node--view.html.twig -

    <div{{ attributes.addClass('col-4')}}>
      <div class = "news-card">
        <img src = "{{ file_url(node.field_image.entity.fileuri) }}">
        <h3>{{ node.label }}</h3>
        {% set text = content.body|render|striptags %}
        <p>{{ text|length > 100 ? text|slice(0, 120) ~ '...' : text }}</p>
        <a href = "{{ url }}" class = "btn black-btn">Read More</a>
      </div>
    </div>

и в моем файле views-view-unformatted.html.twig у меня есть -

<h2>{{ view.getTitle() }}</h2>
  {% if title %}
      <h3>{{ title }}</h3>
  {% endif %}
<div class = "row news-row">
{% for row in rows %}
  {%
    set row_classes = [
      default_row_class,
    ]
  %}
    {{- row.content -}}
  {% endfor %}
</div>
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Один опытный веб-разработчик назвал комбинацию Drupal и AngularJS "сочетанием, созданным на небесах". Почему так? Потому что вместе они могут создать...
0
0
1 220
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать переменную цикла, чтобы определить, какой «элемент» является первым/последним в цикле.

{% if loop.first %}
    ...
{% endif %}

{% if loop.last %}
    ...
{% endif %}

Ваш код

<div class = "row news-row">
{% for row in rows %}
  {%
    set row_classes = [
      default_row_class,
    ]
  %}
    {% if loop.first %}
        First item:
    {% endif %}

    {% if loop.first %}
        Last item:
    {% endif %}
    {{- row.content -}}
  {% endfor %}
</div>

Вы знаете, куда бы я поместил этот код? Я пробовал как row.content.first в файле views-view-unformatted.html.twig, но ничего не появляется.

jfc 22.12.2020 23:16

Другие вопросы по теме