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

Таблица block_content

Таблица block_content служит основным репозиторием для хранения пользовательских блоков, созданных через административный интерфейс Drupal (Структура → Блоки макета → Пользовательские блоки). В отличие от блоков, предоставляемых модулями, эти блоки создаются и управляются непосредственно пользователем.

Поля

Поле Тип данных Описание
id int Первичный ключ, уникальный числовой идентификатор блока. Автоматически инкрементируется.
revision_id int Внешний ключ, ссылающийся на id в таблице block_content_revision. Указывает на текущую актуальную ревизию для этого блока.
type varchar(32) Идентификатор типа блока (Bundle). Ссылается на тип, определённый в block_content_type (например, 'basic', 'hero').
uuid varchar(128) Уникальный универсальный идентификатор (UUID) для данного блока. Остается неизменным на протяжении всего жизненного цикла блока, даже при экспорте конфигурации.
langcode varchar(12) Код языка, к которому привязан контент блока (например, 'en', 'ru'). Определяет, в какой языковой версии отображается блок.

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

Когда администратор создает новый пользовательский блок через интерфейс Drupal, в таблицу block_content вставляется новая запись. Поле type определяет, к какому типу блока (Bundle) он принадлежит, что влияет на набор доступных полей (например, только тело, тело + изображение).

Drupal использует систему ревизий для контентных сущностей, включая кастомные блоки. Таблица block_content хранит только метаинформацию о последней актуальной версии блока. Все исторические данные и непосредственно содержимое полей (тело, заголовок) хранятся в связанных таблицах: block_content_field_data (данные) и block_content_revision (ревизии).

После создания блока его можно разместить в любом регионе темы через административный интерфейс размещения блоков (Структура → Блоки макета). Информация о самом размещении (в каком регионе, на каких страницах) хранится в таблице block, которая ссылается на id из block_content.

Поле uuid критически важно для экспорта конфигурации. При развертывании изменений с одной среды на другую (например, с разработки на продакшн) UUID гарантирует, что система корректно идентифицирует и обновляет существующие блоки, а не создает дубликаты.

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

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

SELECT bc.id, bc.uuid, bcd.info, bcd.body_value FROM block_content bc INNER JOIN block_content_field_data bcd ON bc.id = bcd.id WHERE bc.type = 'basic' AND bc.langcode = 'en';

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

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