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

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

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

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

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

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

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

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

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

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

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

Загрузить данные параграфов для связанного с ними entity

Июль 8, 2023 г.

Пример кода для загрузки параграфов. В данном примере будем загружать параграфы, связанные с entity commerce_product_variation (это сущность модуля Commerce). Я привязал информацию по остаткам складов к вариациям в виде параграфов (тип - stocks). ...

Читать

Работа с config split модулем в Drupal

Март 16, 2024 г.

Задача модуля - дать возможность разделить конфигурации сайта для разных системных окружений. На локальном сервере вы можете использовать такие модули ...

Читать

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

Август 16, 2023 г.

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

Читать

The installed version of the /Имя модуля/ module is too old to update

Октябрь 9, 2024 г.

При выполнении drush updb вы можете увидеть такое сообщение. Обычно это связано с обновлением модуля до следующей major версии. Тогда в модуле может быть прописан hook_update_last_removed, где прописан номер hook_update, ниже которого номерные ...

Читать
 

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

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



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