Таблица 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,
которая хранит конфигурацию фильтров представления