Настройка Paragraphs модуля Drupal для гибкого контента
Paragraphs — один из самых популярных модулей Drupal. Позволяет строить страницы из переиспользуемых блоков (параграфов): Hero-секция, текст с изображением, карточки, цитата, таблица, форма. Редактор собирает страницу из параграфов как конструктор, без программирования.
Установка
composer require drupal/paragraphs
drush en paragraphs -y
drush cr
Создание типа параграфа
Структура → Типы параграфов → Добавить тип параграфа.
Пример — параграф «Hero секция»:
- Название параграфа: Hero секция
- Machine name:
hero_section - Поля:
-
field_hero_title(Text, plain) -
field_hero_subtitle(Text, plain, long) -
field_hero_image(Image) -
field_hero_cta_text(Text, plain) -
field_hero_cta_url(Link)
-
Добавление поля Paragraphs к типу контента
Управление полями → Добавить поле → Тип: Параграф (entity reference revisions).
Настройки:
- Количество значений: Неограничено (чтобы добавлять несколько параграфов)
- Разрешённые типы параграфов: выбрать нужные
- Виджет: Paragraphs Classic или Paragraphs Experimental (с drag-and-drop)
Шаблон параграфа в теме
Файл templates/paragraph/paragraph--hero-section.html.twig:
{% set classes = ['paragraph', 'paragraph--hero-section'] %}
<section{{ attributes.addClass(classes) }}>
<div class="hero__content">
{% if content.field_hero_title %}
<h1 class="hero__title">{{ content.field_hero_title }}</h1>
{% endif %}
{% if content.field_hero_subtitle %}
<p class="hero__subtitle">{{ content.field_hero_subtitle }}</p>
{% endif %}
{% if content.field_hero_cta_text and content.field_hero_cta_url %}
<a href="{{ content.field_hero_cta_url[0]['#url'] }}" class="btn btn--primary">
{{ content.field_hero_cta_text }}
</a>
{% endif %}
</div>
{% if content.field_hero_image %}
<div class="hero__image">
{{ content.field_hero_image }}
</div>
{% endif %}
</section>
Вложенные параграфы
Параграф может содержать дочерние параграфы. Например, «Секция с карточками» содержит несколько параграфов «Карточка»:
- Создать тип
cardс полями: заголовок, текст, иконка - Создать тип
cards_sectionс полемfield_cardsтипа Paragraph, разрешённый тип:card - Редактор добавляет секцию → внутри добавляет карточки
Настройка отображения
Управление отображением → Display Suite или Layout Builder для визуальной расстановки полей параграфа.
Paragraphs и ревизии
Paragraphs поддерживает ревизии синхронно с родительским узлом (entity reference revisions — не просто entity reference). При откате ноды — откатываются и параграфы.
Сроки
Разработка 5–8 типов параграфов с шаблонами — 3–5 дней в зависимости от сложности вёрстки каждого блока.







