Настройка Layout Builder Drupal
Layout Builder — встроенный в Drupal 8.7+ инструмент визуального построения страниц. Позволяет редактору расставлять блоки по настраиваемой сетке макетов без программирования. Альтернатива Paragraphs для создания страниц с произвольной структурой.
Включение модуля
drush en layout_builder layout_discovery -y
drush cr
Layout Builder входит в ядро Drupal — дополнительная установка через Composer не нужна.
Настройка для типа контента
Структура → Типы контента → [тип] → Управление отображением → Enable Layout Builder → Save.
Два режима:
- Defaults — шаблон макета для всех нод этого типа (настраивается администратором)
- Allow each content item to have its layout customized — каждая нода может иметь уникальный макет
Работа с секциями и блоками
Layout Builder использует сетку на основе секций. Каждая секция — строка с настраиваемым количеством колонок (1, 2, 3, 4 или кастомные пропорции). В каждую колонку добавляются блоки: поля ноды, кастомные блоки, вьюхи.
Кастомные секции через Layout Discovery
// custom_layouts/layouts/my_hero/my_hero.php
namespace Drupal\custom_layouts\Plugin\Layout;
use Drupal\Core\Layout\LayoutDefault;
/**
* @Layout(
* id = "my_hero_layout",
* label = @Translation("Hero + Sidebar"),
* category = @Translation("Custom"),
* template = "layouts/my-hero",
* regions = {
* "hero" = { "label" = @Translation("Hero Area") },
* "sidebar" = { "label" = @Translation("Sidebar") }
* }
* )
*/
class HeroSidebarLayout extends LayoutDefault {}
Twig-шаблон layouts/my-hero.html.twig:
<div class="layout-hero-sidebar">
<div class="layout-hero-sidebar__hero">
{{ content.hero }}
</div>
<aside class="layout-hero-sidebar__sidebar">
{{ content.sidebar }}
</aside>
</div>
Layout Builder Restrictions
Модуль Layout Builder Restrictions ограничивает, какие блоки можно добавлять в каждую секцию. Без него редактор может случайно добавить неподходящий блок.
composer require drupal/layout_builder_restrictions
drush en layout_builder_restrictions -y
Настройка: Структура → [тип контента] → Управление отображением → Layout Builder → Restrictions.
Проблемы Layout Builder
- SEO: Layout Builder хранит данные в blob, поисковики не всегда правильно индексируют сложную структуру
- Производительность: без кэширования каждая страница с уникальным макетом — дополнительные запросы к БД
- API: Layout Builder плохо работает с Headless Drupal — вывод через JSON:API не передаёт структуру макета
Для headless архитектуры лучше использовать Paragraphs.
Сравнение с Paragraphs
Layout Builder удобнее для маркетологов — визуальный drag-and-drop. Paragraphs удобнее для разработчиков — чистая структура данных, предсказуемый вывод в templates, хорошая поддержка API.
Сроки
Настройка Layout Builder для 2–3 типов контента с кастомными секциями — 3–4 дня.







