Добавление условий во 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. Это несет определенные риски, и ответственность за то, что вы там пишите, полностью ложится на ваши плечи. Тогда как другие операторы ограничены в применении, связаны с типом конкретного поля, проходят ряд проверок и т.п.

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

Drupal API функции для работы с таксономией

Октябрь 12, 2018 г.

Drupal 7 поддерживает работу с таксономией на уровне ядра (модуль taxonomy), предоставляя богатый арсенал функций. Здесь мы рассмотрим только функции, ...

Читать

Проблемы загрузки скриптов в параграфах Drupal 7

Март 22, 2021 г.

Проявляется как не прогружающиеся wysiwyg редактор (ckeditor, например) или элементы поля, обрабатываемые модулем media, при добавлении параграфа (entity модуля parapraphs). Это по-крайней мере два примера с которыми я лично сам сталкивался. Характерно, ...

Читать

Программно выводим блок в Drupal

Февраль 7, 2019 г.

Если вы решили вывести блок, реализованный в каком либо модуле, программно, то следующие  примеры кода помогут вам. Используя block API Запрашиваем данные блока через API, готовим массив для последующего рендеринга: [crayon-69af00dc94263527079836/] ...

Читать

Добавление пунктов меню в Administration menu (admin_menu)

Апрель 8, 2020 г.

Популярный административный модуль admin_menu, собирает всё самое нужное и важное для управления сайтом. И хотя в 7 версии в ядре вы найдете модуль tool, обладающий похожим функционалом, ему не удалось заменить admin_menu. Далее, разберем код, добавляющий ...

Читать
 

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

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



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