Настройка Drupal Layout Builder: кастомные секции и макеты

Редакторы часто просят возможность перетаскивать блоки без участия разработчика. Штатный Layout Builder в Drupal начиная с версии 8.7 даёт визуальный конструктор макетов, встроенный в [Drupal](https://en.wikipedia.org/wiki/Drupal). Мы настраивали его для десятков проектов и знаем, как выжать максиму

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Drupal Layout Builder: кастомные секции и макеты
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Редакторы часто просят возможность перетаскивать блоки без участия разработчика. Штатный Layout Builder в Drupal начиная с версии 8.7 даёт визуальный конструктор макетов, встроенный в Drupal. Мы настраивали его для десятков проектов и знаем, как выжать максимум без боли. На одном из проектов с 500 страницами уникальные макеты увеличили время ответа на 40% — пришлось перепроектировать подход.

Как Layout Builder решает проблемы редакторов

Типовая ситуация: маркетологу нужно быстро поменять структуру лендинга — добавить карусель, вынести форму захвата. Без Layout Builder приходится писать новый тип контента или лезть в twig. С ним — drag-and-drop прямо на странице. Два режима: общий шаблон для всех материалов типа и персональные макеты для каждой записи. Второй режим — мощь, но и источник проблем: каждая уникальная страница генерирует дополнительные запросы к БД. Экономия времени редактора на правках — до 70%.

Пошаговая настройка Layout Builder

  1. Установите модули через Drush:
    drush en layout_builder layout_discovery -y drush cr 
  2. Перейдите в админке: Структура → Типы контента → выберите тип → Управление отображением. Нажмите «Enable Layout Builder».
  3. Выберите режим: Defaults (один макет для всех нод) или «Allow each content item to have its layout customized» (уникальный макет для каждой ноды).
  4. Настройте макет по умолчанию: добавьте секции, блоки, поля.
  5. Ограничьте доступные блоки с помощью модуля Layout Builder Restrictions (см. ниже).

Настройка для типа контента

После включения Layout Builder откройте вкладку «Manage layout». Вы увидите пустую сетку. Добавьте секцию (например, one column) и поместите в неё блоки — поля ноды, кастомные блоки, вьюхи. Для типов контента с сотнями нод используйте только режим Defaults — персональные макеты сильно нагружают БД.

Как создать кастомную секцию?

Секции регистрируются через плагин layout. Пример: Hero с сайдбаром.

// 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. Там задаётся whitelist блоков для каждой секции.

Почему Layout Builder может тормозить?

Основные причины:

  • Blob-данные уникальных макетов — каждый раз парсятся.
  • Отсутствие кэша для макетов — повторные запросы к БД.
  • Большое количество блоков на странице (более 20).
Причина Решение
Blob-данные при каждом рендеринге Используйте Dynamic Page Cache и BigPipe для кэширования частей страницы.
Отсутствие кэша макетов Включите BigPipe и настройте кэширование через hook_layout_builder_defaults_alter().
Много блоков на странице Сократите количество блоков, используйте Layout Builder Restrictions.

Также для типов контента с более чем 50 нодами откажитесь от персональных макетов. В Drupal Performance Documentation подчёркивается важность кэширования для Layout Builder.

Сравнение Layout Builder и Paragraphs

Параметр Layout Builder Paragraphs
Интерфейс Drag-and-drop Форма добавления
Структура данных Blob Чистые сущности
Поддержка API Плохая Отличная
Производительность Тяжелый Лёгкий
Кастомизация Секции Вложенные параграфы

Layout Builder удобнее для маркетологов — визуальный drag-and-drop. Paragraphs удобнее для разработчиков — чистая структура данных, предсказуемый вывод в templates, хорошая поддержка API. Выбор зависит от задачи: если нужна максимальная гибкость для редактора без кода — Layout Builder; если проект сложный или headless — Paragraphs.

Что входит в настройку

В настройку Layout Builder под ключ входит:

Этап Описание
Включение и конфигурация Настройка для 2-3 типов контента
Создание кастомных секций 3-5 секций с уникальными регионами
Ограничения блоков Настройка Layout Builder Restrictions для каждой секции
Интеграция Подключение существующих блоков и вьюх
Проверка производительности Аудит кэширования, рекомендации
Документация Инструкция для редакторов со скриншотами

Сроки

Настройка Layout Builder для 2–3 типов контента с кастомными секциями — от 3 до 5 рабочих дней. Срок может варьироваться в зависимости от сложности макетов и необходимости интеграции с другими модулями.

Типовые ошибки и как их избежать

  • Не включать Restrictions — редактор ломает вёрстку неподходящими блоками. Решение: всегда настраивать Restrictions.
  • Давать персональные макеты всем нодам — убивает производительность. Решение: давать персональные макеты только типам контента с малым числом нод (до 50).
  • Игнорировать кэширование — Layout Builder генерирует много запросов. Решение: включить BigPipe и Dynamic Page Cache.

Если нужна помощь с настройкой Layout Builder или хотите избежать типовых ошибок — свяжитесь с нами. Наши инженеры имеют более 5 лет опыта работы с Drupal и настроили Layout Builder для 40+ проектов. Получите консультацию по кэшированию и кастомным секциям — это бесплатно.