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

Таблица block_content_field_revision

Таблица block_content_field_revision является центральным хранилищем данных полей для всех ревизий пользовательских блоков в Drupal. Она работает в связке с основной таблицей block_content_revision, которая содержит метаинформацию о ревизиях.

Поля

Поле Тип данных Описание
id int Идентификатор блока. Внешний ключ к таблице block_content.
revision_id int Идентификатор ревизии. Внешний ключ к таблице block_content_revision. Вместе с id образует первичный ключ.
langcode varchar(12) Код языка, для которого предназначены данные в этой строке.
status tinyint Статус публикации ревизии: 1 - опубликована, 0 - не опубликована.
info varchar(255) Название или описание блока, отображаемое в административном интерфейсе.
changed int Время последнего изменения ревизии в формате UNIX timestamp.
default_langcode tinyint Флаг, указывающий является ли этот язык языком по умолчанию для ревизии: 1 - да, 0 - нет.

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

Drupal использует систему ревизий для отслеживания истории изменений контента. Каждый раз, когда пользователь редактирует и сохраняет пользовательский блок, создается новая ревизия. Данные полей этой ревизии сохраняются в таблице block_content_field_revision.

Структура таблицы следует шаблону Drupal для ревизионных полевых данных. Поля id и revision_id вместе образуют составной первичный ключ, что позволяет хранить несколько ревизий для одного блока.

Многоязычная поддержка реализована через поле langcode. Для каждого языка создается отдельная запись в таблице, что позволяет иметь разные версии контента для разных языков.

Поле status определяет, является ли ревизия опубликованной. Toлько одна ревизия блока может иметь статус 1 (опубликована) в данный момент времени.

Когда пользователь просматривает историю изменений блока, система извлекает данные из этой таблицы, чтобы показать содержимое каждой ревизии.

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

Получить все ревизии для конкретного блока можно следующим запросом:

SELECT r.revision_id, r.revision_created, f.info, f.status, f.changed FROM block_content_field_revision f JOIN block_content_revision r ON f.revision_id = r.revision_id WHERE f.id = 15 ORDER BY r.revision_created DESC;

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

  • таблицу block_content,
    которая хранит основную информацию о пользовательских блоках
  • таблицу block_content_revision,
    которая содержит метаданные ревизий блоков
  • таблицу block_content_field_data,
    которая хранит опубликованные данные полей блоков
  • таблицу node_field_revision,
    которая выполняет аналогичную функцию для ревизий материалов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить