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

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

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

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

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

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

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

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

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

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

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

Чем заменить drupal_get_path() в Drupal 9/10

Январь 9, 2024 г.

Функция считается устаревшей, начиная с версии ядра 9.3, в 10-й версии функция удалена из кода. В новом API нужно воспользоваться одним из сервисов ядра, которые реализуют нужную функцию. Сервис extension.list.module - реализует функции, связанные ...

Читать

Ошибка обновления metatag remove_robots_noydir_noodp

Май 24, 2023 г.

Если у вас собран Drupal + Commerce, то, возможно, при обновлении модуля метатегов возникает ошибка. Модуль не находит таблицы мета информации для сущности commerce_product и прерывается с выводом сообщения: [crayon-6a6e54425b16f839745709/] ...

Читать

Кастомизация шаблона формы плагина webforms

Май 1, 2023 г.

Чтобы изменить штатный макет формы webform-submission-form.html.twig, требуется имплементация своего шаблона. Для начала определимся с именем шаблона. ...

Читать

Attempting to re-run cron while it is already running.

Июнь 3, 2025 г.

Попытка запустить cron параллельно с запущенным кроном не увенчается успехом, так как Drupal использует блокировку. Но иногда, из-за ошибок во время исполнения, блокировка не снимается. Что делать, если блокировка не была снята штатно? На самом ...

Читать
 

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

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



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