Добавление условий во views программно

Модуль Views — мощный инструмент в копилке друпалера. Конструктор позволяет создавать условия, перекрывающие большую часть потребностей в практических задачах. Есть возможность связывания с дополнительными сущностями и контекстом выполнения представления.

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

Изменить запрос можно с помощью зацепки hook_views_query_alter(&$view, &$query), где достаточно поменять свойства объекта $query для достижения ваших целей.

Условия представлены в виде массива, который отражает структуру условий из конструктора views.

Пример набора условий во views состоящих из двух групп:

… и его представление в объекте query:

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

На первый взгляд кажется, что условия базируются на Database Drupal API https://www.drupal.org/docs/7/api/database-api/dynamic-queries/conditional-clauses. Но это не так.

Использованный в примере оператор formula — даёт максимальную свободу в формулировках условий, фактически позволяя вам добавлять выражения на sql. Это несет определенные риски, и ответственность за то, что вы там пишите, полностью ложится на ваши плечи. Тогда как другие операторы ограничены в применении, связаны с типом конкретного поля, проходят ряд проверок и т.п.

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

Получение списка SQL-запросов через Devel: отладка в нестандартных сценариях

Июль 22, 2026 г.

В процессе разработки на Drupal иногда возникает необходимость проанализировать, какие SQL-запросы выполняются при обработке того или иного запроса. Стандартный интерфейс Devel (например, панель внизу страницы) отлично справляется с этой задачей для обычных ...

Читать

Организуем автодеплой изменений из репозитория для проекта на Drupal

Август 23, 2018 г.

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

Читать

Показ анимации, что идет загрузка, для обновления контента views в режиме ajax

Май 22, 2021 г.

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

Читать

Подключаем suggestions list в диалог CKeditor - Link

Август 10, 2021 г.

Link - это штатный диалог, который используется в CKeditor для редактирования ссылок. И выглядит он как показано на картинке сверху. Он хорошо выполняет ...

Читать
 

Комментарии к «Добавление условий во views программно»

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



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