Вставляем объект views в нужное место шаблона средствами PHP

Мощный, всепоглощающий, великий и ужасный модуль VIEWS. Очень коварный, он толкает программиста с пути «только хардкор» и разработки на PHP на скользкую дорожку программирования без программирования. :)

Попробую показать работу с модулем VIEWS, что называется из кода. Здесь показаны примеры с использованием версии модуля Views 7.x — 3.14.

Объект Views

Пусть к нас есть какое то представление (объект views). Получить его объект можно вот так:

Нужно знать лишь машинное имя представления. Далее все в вашей власти.

Подстановка значений открытых фильтров

Если представление содержит exposed filters, а вам необходимо задать их значения, то делается это следующим образом:

Названия фильтров можно подсматривать в HTML коде преставления или в редакторе.

В редакторе наведите курсор на название критерия фильтрации, и последний элемент пути будет содержать правильное машинное имя параметра фильтра. Opera, к примеру, показывает подсказку внизу экрана.

filter-criteria

Выбор отображения

Если в вашем представлении используется несколько отображений, выбрать нужное можно вот так:

Выполняем запрос VIEW

Фильтры установлены, тип отображения выбран. Пора выполнить запрос.

Далее готовимся к выводу данных в шаблон.

Отключаем вывод фильтра во VIEWS

Если его не надо показывать пользователю, то фильтр нам уже не нужен (вьюха была запущена, данные запрошены).

Просто удалим виджеты фильтра.

Вывод представления в шаблон

В большинстве случаев остается только получить HTML код путем запуска рендеринга объекта представления.

Вставка HTML кода перед футером VIEWS

Это что то из разряда частных задач. Пример, возможно, простимулирует вас самостоятельно покопаться в объекте VIEWs.

Я хочу вклинить HTML код во внутрь представления, чтобы он (код) был показан сразу после вывода элементов списка, но до футера (views footer).

Тут придется анализировать есть ли вообще футер у views, а также смотреть не пустой ли список возвращает запрос производимый представлением.

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

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

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

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

Читать

Отладка запроса SQL, получаемого в модуле views Drupal

Октябрь 19, 2017 г.

Сложные представления (views) требуют понимания того, что в итоге получилось, какой запрос сформировался в результате магии и такой то матери в конструкторе View UI. Итак, как получить SQL запрос, который формируется во views drupal? В этом ...

Читать

Прячем поле view в зависимости от роли пользователя в Drupal

Август 31, 2023 г.

Метод работает не только с ролями, но и любой другой логикой, которую вы в силах реализовать в коде. Нам понадобится hook_views_pre_render, где мы выполним проверку и отключим не нужное нам поле представления. [crayon-6876b9221b32b365285478/] ...

Читать

Использование entityqueue для сортировки элементов во view, основанной на Search API datasource

Апрель 3, 2024 г.

Ранее подход, который я опишу, использовался для nodequeue, сейчас с заменой плагина фунционалом entityqueue, тоже самое можно применить и для него. Проблема: Создано представление (view), где источник данных - элементы datasource Search API. ...

Читать
 

Комментарии к «Вставляем объект views в нужное место шаблона средствами PHP»

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



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