Налаштування Drupal Layout Builder
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 дні.







