Таблица views_filter
Таблица views_filter является частью системы представлений (Views) в Drupal и отвечает за хранение конфигурации всех фильтров, добавленных в представления. Фильтры позволяют ограничивать набор выводимых данных по определенным условиям (например, "статус ноды опубликован", "дата создания больше чем...", "принадлежность к определенной терминологии").
Поля
| Поле | Тип данных | Описание |
|---|---|---|
vid |
int |
Идентификатор версии представления. Внешний ключ для таблицы views_view.
|
id |
varchar(64) |
Машинное имя фильтра. Обычно соответствует ID плагина фильтра. |
table |
varchar(64) |
Имя таблицы базы данных, к которой применяется фильтр (например, node_field_data, users_field_data).
|
field |
varchar(64) |
Имя поля в таблице, по которому происходит фильтрация (например, status, type, uid).
|
relationship |
varchar(64) |
Идентификатор отношения (relationship), которое должно быть установлено перед применением этого фильтра. Если фильтр не требует отношения, значение равно none.
|
group |
int |
Идентификатор группы фильтров. Фильтры с одинаковым group объединяются оператором OR между группами и оператором AND внутри группы.
|
admin_label |
varchar(255) |
Человекочитаемая метка фильтра, отображаемая в интерфейсе администратора. |
operator |
varchar(64) |
Оператор, используемый для фильтрации (например, =, , , IN, LIKE).
|
value |
serialize |
Значение(я), с которыми сравнивается поле. Данные хранятся в сериализованном виде (массив, строка, число) в зависимости от типа фильтра. |
group_type |
varchar(64) |
Тип группы: AND или OR. Определяет, как условия внутри этой группы будут объединены.
|
exposed |
tinyint |
Флаг, указывающий, является ли фильтр экспонированным (доступным для настройки пользователем на странице): 0 - нет, 1 - да.
|
plugin |
varchar(64) |
Машинное имя плагина-обработчика, который реализует логику данного фильтра (например, boolean, string, numeric, in_operator).
|
Как это работает
При создании или редактировании представления через административный интерфайс каждый добавленный фильтр создает или обновляет запись в этой таблице. Конфигурация фильтра (его оператор, значение, настройки экспонирования) сериализуется и сохраняется в поле value.
Когда представление выполняется, модуль Views считывает конфигурацию всех фильтров из этой таблицы для конкретного vid. Затем на основе этих данных строится SQL-запрос, в секцию WHERE которого добавляются соответствующие условия.
Поле group и group_type позволяют создавать сложные группы условий. Например, можно сформировать запрос: "Показать все статьи (type = 'article') И (статус опубликован (status = 1) ИЛИ принадлежат пользователю с ID 1 (uid = 1))".
Экспонированные фильтры (exposed = 1) отображаются на странице в виде формы (селектов, текстовых полей), позволяя посетителям сайта самостоятельно фильтровать контент по заданным критериям.
Пример SQL-запроса
Получить все фильтры для определенной версии представления можно следующим запросом:
SELECT vid, id, table, field, operator, value, exposed
FROM views_filter
WHERE vid = 12
ORDER BY group, weight;
Смотрите также
-
таблицу
views_view,
которая хранит основные данные о представлениях -
таблицу
views_display,
которая хранит конфигурацию дисплеев представлений -
таблицу
views_sort,
которая хранит конфигурацию сортировок представлений -
таблицу
views_argument,
которая хранит конфигурацию контекстных фильтров (аргументов)