Задать вопрос
@curious_dev

Как вывести summary для поля в файле темизации блока-представления (block--views-....html.twig)?

Все действия происходят на сайте с установленным на него Drupal 8. Есть блок на главной странице, который является представлением, выводящим 3 последние новости сайта. В каждой новости есть 3 поля:
  • Дата публикации (field_publish_date).
  • Заголовок (field_title).
  • Текст новости (field_body).

5f75e890a592e872469824.jpeg
Представление настроено таким образом, что из таблицы БД, в которой содержится текст новости, берётся значение колонки не body_value со всякими лишними html-тегами и картинками, а краткий анонс - значение колонки body_summary. Это сделано посредством выбора в настройках соответствующего поля из select'а "Средство форматирования" опции "Краткое содержание или обрезанный текст":
5f75e8b941bce207962779.jpeg
Сейчас появилась необходимость переверстать этот блок, и я с этой целью создал файл темизации block--views-block--news-block-1.html.twig. В нём я могу обращаться к переменной {{ content }}, которая содержит в себе все вышеперечисленные поля. Но мне нужно обращаться к каждому полю по отдельности, а не ко всему контенту целиком. Перепробовав кучу неработающих вариантов (наподобие {{ content.field_body }} или {{ content.field_body[0].value }}), нашёл единственный рабочий в моём случае:
{% for row in content['#view'].result %}
  {{ content['#view'].field['field_publish_date'].value(row) }}
  {{ content['#view'].field['field_title'].value(row) }}
  {{ content['#view'].field['field_body'].value(row) }}
{% endfor %}

Всё замечательно выводится и я могу оборачивать поля в отдельные html-теги. Проблема в том, что content['#view'].field['field_body'].value(row) выводит мне содержимое колонки body_value из БД, а мне нужно обращаться к колонке body_summary. Перепробовал кучу разных вариантов, но ни один не сработал. Подскажите, пожалуйста, как можно вывести в этом twig-файле значение колонки body_summary?
Пока что я разобрался точно, что мой способ обращения к полям получает их сырые значения (т.е. до всяких обработок). Возможно, есть какой-то способ получать их финальные значения? Либо способ обратиться к тем же "сырым" данным, но к конкретной колонке из БД (что-то наподобие {{ content.field_body.0.body_summary }})?
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
andead
@andead
друпал девелопер, фрилансер
Если нужно изменить вёрстку поля, то надо переопределять шаблон поля Views, а не шаблон блока. Включите twig debug и он покажет название всех используемых шаблонов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы