Таблица block_custom
Таблица block_custom используется в Drupal для хранения пользовательских блоков, которые создаются администратором сайта через интерфейс /admin/structure/block. Эти блоки содержат пользовательский контент (HTML, текст) и могут быть размещены в любом регионе темы.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
bid |
serial |
Уникальный идентификатор пользовательского блока. Первичный ключ таблицы. |
body |
text |
Содержимое пользовательского блока. Может содержать HTML-разметку и текст. |
info |
varchar(128) |
Название или описание блока, которое отображается в интерфейсе администратора. |
format |
varchar(255) |
Идентификатор формата текста (текстовый фильтр), который применяется к содержимому блока. Ссылается на таблицу filter_format.
|
Как это работает
Когда администратор создает новый пользовательский блок через интерфейс Drupal (/admin/structure/block/add), в таблицу block_custom добавляется новая запись. Поле info хранит административное название блока, а поле body - его содержимое.
После создания блока его необходимо разместить в определенном регионе темы. Эта информация хранится в таблице block, где поле module имеет значение block, а поле delta содержит bid пользовательского блока.
При отображении страницы система блоков Drupal обращается к таблице block, находит все активные блоки для текущей темы и региона, и для пользовательских блоков (модуль block) загружает их содержимое из таблицы block_custom по соответствующему bid.
Форматирование содержимого блока осуществляется с помощью системы фильтров Drupal на основе значения в поле format, которое определяет, какие текстовые фильтры должны быть применены к содержимому перед выводом.
Пример SQL-запроса
Получить все пользовательские блоки с информацией о формате текста можно следующим запросом:
SELECT bc.bid, bc.info, bc.body, ff.name as format_name
FROM block_custom bc
LEFT JOIN filter_format ff ON bc.format = ff.format;
Смотрите также
-
таблицу
block,
которая хранит размещение блоков в регионах темы -
таблицу
block_content,
которая хранит содержимое блоков типа "Пользовательский блок" -
таблицу
filter_format,
которая хранит форматы текстовых фильтров -
таблицу
cache_block,
которая хранит кеш данных блоков