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

Таблица views_field

Таблица views_field является одной из ключевых таблиц модуля Views в Drupal. Она хранит конфигурацию для каждого поля, добавленного в конкретное представление. Каждая запись в этой таблице соответствует одному полю в одном из display'ов (отображений) представления (например, страница, блок, фид) и содержит все настройки, определяющие, как это поле должно быть обработано и выведено.

Поля

Поле Тип данных Описание
vid int Версия представления. Внешний ключ к views_view.vid. Вместе с id (machine name представления) однозначно идентифицирует представление, к которому принадлежит это поле.
id varchar(128) Machine name представления. Внешний ключ к views_view.id.
display_id varchar(128) Идентификатор отображения (display) внутри представления, для которого настроено это поле (например, 'page_1', 'block_1', 'default').
field varchar(64) Идентификатор (ID) самого поля. Обычно соответствует machine name поля, определенного в хуках модуля, или имени свойства сущности.
weight int Вес поля, определяющий его порядок относительно других полей в этом же отображении представления. Поля сортируются по возрастанию этого значения.
position varchar(12) Определяет область, в которой находится поле. Часто используется для сложных форматов вывода. Например, 0 может означать основную область строки, в то время как другие значения могут указывать на область заголовка или footer'а.
settings longblob Сериализованный массив (PHP serialize) всех настроек поля. Здесь хранятся такие параметры, как формат вывода, метка (label), настройки переписывания вывода, ссылки, классы CSS и многие другие опции, доступные в UI Views.

Как это работает

Когда администратор создает или редактирует представление через пользовательский интерфейс и добавляет поле (например, "Заголовок материала" или "Дата публикации"), модуль Views создает или обновляет запись в таблице views_field. Эта запись связывает поле (field) с конкретным отображением (display_id) конкретной версии (vid) представления (id).

При построении представления Drupal загружает все поля, связанные с запрашиваемым отображением, сортирует их по полю weight и затем для каждого поля загружает его обработчик. Обработчик поля использует конфигурацию, хранящуюся в сериализованном виде в settings, чтобы получить raw-данные из базы, отформатировать их и вывести в нужном месте (определяемом полем position) итоговой HTML-разметки.

Поле settings является наиболее важным и сложным. Оно содержит гибкую конфигурацию, которая позволяет одному и тому же типу поля (например, "Заголовок") по-разному отображаться в разных представлениях или даже в разных отображениях одного представления (например, показывать как ссылку на странице и как plain text в блоке).

Пример SQL-запроса

Получить список всех полей для отображения 'page_1' представления с machine name 'my_custom_view' можно следующим запросом:

SELECT vf.field, vf.weight, vf.position FROM views_field vf WHERE vf.id = 'my_custom_view' AND vf.display_id = 'page_1' ORDER BY vf.weight ASC;

Для просмотра сериализованных настроек конкретного поля (требует десериализации для чтения):

SELECT settings FROM views_field WHERE id = 'my_custom_view' AND display_id = 'page_1' AND field = 'title';

Смотрите также

  • таблицу views_view,
    которая хранит основную конфигурацию представлений
  • таблицу views_display,
    которая хранит конфигурацию отображений (display) представления
  • таблицу views_sort,
    которая хранит конфигурацию критериев сортировки
  • таблицу views_filter,
    которая хранит конфигурацию фильтров представления
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить