Дополняем результаты views

Пример того, как можно дополнить результаты views в Drupal 9/10.

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

Опускаю саму вьюху, рассмотрим лишь реализацию хука hook_views_post_execute(). Он выполняется когда результаты запроса views уже получены и мы можем их изменить.

Хук делает слудующее:

  • Проверяет контекст — является ли текущая страница нодой.
  • Пытается получить содержимое поля field_news_related, в котором пользователь задаёт вручную статьи.
  • Переписывает заданными вручную статьями результаты выдачи.

По умолчанию связанные статьи выбираются, например, из последних новостей с использованием фильтра, например, категории новости (все условия определяются в самой views и нам не важны).

Но если пользователь определил какие то связанные статьи вручную, то они будут поставлены в полученный список, замещая первые элементы.

В шаблоне вам нужно лишь вызвать это представление вот так (я использую модуль twig_tweak):

С помощью написанного нами хука, указанные редактором статьи будут вставлены в результаты.

Мало букафф? Читайте есчо !

Как полностью удалить поле в Drupal, если оно «зависло» в хранилище полей

Сентябрь 5, 2025 г.

Иногда в Drupal возникает ситуация: вы удаляете поле с типов сущностей (bundle), но оно не исчезает полностью из системы. UI говорит, что поле «используется», хотя на самом деле ни одна сущность его не использует. В этом случае поле остаётся в конфигурации ...

Читать

Добавляем свой фильтр в TWIG на Drupal

Июнь 1, 2023 г.

В TWIG уже много разных встроенных фильтров, Drupal их перечень только расширяет. Но наше счастье было бы не полным, если бы мы не могли добавить свои фильтры. В Drupal это делается через сервис twig.extension. Для начала надо сформировать описатель, ...

Читать

Не появляется форма переиндексации на странице /admin/config/search/search-api/index/

Июль 25, 2024 г.

Если ваш view базируется на search API источнике данных, то важно, чтобы данные были проиндексированы. Но иногда форма переиндексации отсутствует на странице ...

Читать

Проверить роль пользователя в twig

Август 16, 2023 г.

Многие стандартные шаблоны в Drupal содержат вывод переменной пользователя (user), что делает возможным реализацию различной логики, в том числе и проверку роли пользователя. Например, вы желаете показывать какой-то элемент шаблона, только для ...

Читать
 

Комментарии к «Дополняем результаты views»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: