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

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

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

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

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

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

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

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

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

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

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

Создание контроллера для скачивания файла в Drupal

Сентябрь 6, 2023 г.

Пример кода, реализующий endpoint скачиваемого файла. [crayon-6aaa98420dc21689299529/] Кроме контроллера, вам потребуется еще задать маршрут. Пример описания маршрута: [crayon-6aaa98420dc2a320642552/]

Читать

Убираем пустые категории из фильтра во views

Сентябрь 13, 2023 г.

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

Читать

TMGMT переводит поле view_mode, объявленное плагином menu_link_extras

Июнь 17, 2024 г.

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

Читать

Ставим метрику на сайт с CMS Drupal

Май 16, 2023 г.

Вы получили код для вставки метрики, осталось дело за малым - разместить его на сайте. Сайт управляется Drupal 8/9/10. Я покажу как это сделать через изменение темы сайта. Первая опция - это вставить непосредственно в один из основных шаблонов ...

Читать
 

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

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



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