Добавление условий во 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), предоставляя богатый арсенал функций. Здесь мы рассмотрим только функции, ...

Читать

Вывод данных с группировкой во views drupal

Ноябрь 15, 2019 г.

Типичная проблема при использовании модуля views - как вывести результат группировки, т.е. столбец вроде COUNT(*). Это можно сделать штатными средствами ...

Читать

Вывод результатов формы в саму форму после submit

Март 2, 2017 г.

Что делают в большинстве случаев после успешного submit данных формы? Вариантов два - либо показывают системное сообщение drupal_set_messge(), либо производят переадресацию на некую страницу с результатами. Первый вариант почти всегда выглядит неказисто, ...

Читать

Получить имя поля ключа entity в Drupal 7

Апрель 6, 2021 г.

У меня эта задача возникла при работе с формами, где формы содержат поля '#entity' и '#entity_type'. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node - nid, для file - fid и ...

Читать
 

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

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



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