НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
161 of 182 menu

Таблица 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,
    которая хранит конфигурацию контекстных фильтров (аргументов)
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить