Как в шаблоне параграфа получить заголовок родительской ноды

Иногда возникает задача: в Twig-шаблоне параграфа (paragraph.html.twig) нужно отобразить заголовок материала (ноды), к которому этот параграф прикреплён.

Нам не нужно передавать что то дополнительно в шаблон, эти данные могут быть получены из самой сущности paragrpaph, которая передаётся в шаблон в виде объекта.

Подробнее о том как это работает

Объект paragraph является полноценной сущностью (\Drupal\paragraphs\Entity\Paragraph). У этой сущности есть метод getParentEntity(), возвращающий родительскую сущность — обычно это node.

Twig умеет обращаться к публичным методам и свойствам объектов, поэтому в шаблоне мы можем писать просто paragraph.parentEntity, чтобы получить доступ к родительскому объекту.

Пример кода с выводом заголовка node

В paragraph.html.twig добавим проверку и вывод:

Что здесь происходит

  • paragraph.parentEntity — возвращает родительскую сущность.
  • paragraph.parentEntity.entityTypeId — проверяем, что родитель действительно нода (а не, например, другой параграф).
  • paragraph.parentEntity.label — заголовок родительской ноды (аналогично node.label).

Вложенные параграфы

Если параграф вложен в другой параграф, то paragraph.parentEntity вернёт именно «прямого родителя». В таком случае нужно решать, откуда брать заголовок — от ближайшего контейнера или искать выше по иерархии до ноды. Для базовых сценариев приведённого кода достаточно.

Мало букафф? Читайте есчо !

Как программно отрендерить View в Drupal и получить HTML

Август 3, 2025 г.

В некоторых случаях удобно не только встроить View через UI или блок, но и программно срендерить представление (View) и получить HTML — например, для отправки во внешнюю систему, в e-mail, или вывода в нестандартном месте. В этой статье покажем, как ...

Читать

Рендер произвольного блока в Drupal 11

Март 13, 2025 г.

Если не хочется объявлять дополнительный регион, чтобы настроить вывод блока через админку, то можно сделать рендер блока программно. Например добавим в препроцессинг страницы переменную с рендером блока branding. Этот блок предоставляется модулем ...

Читать

Кастомные настройки сайта в Drupal

Март 9, 2025 г.

На сайте всегда (или почти всегда) возникает задача управления настройками вроде телефон, email, какие то текстовые элементы, вроде копирайта, адрес организации и т.п. С точки зрения данных - требуется объект в терминах шаблонов проектирования - синглтон. ...

Читать

Отключаем страницы терминов таксономии в Drupal

Июль 21, 2025 г.

По умолчанию Drupal генерирует маршруты для каждого термина таксономии. Это означает, что у каждого термина появляется своя страница с URL вида /taxonomy/term/123. В некоторых случаях такие страницы могут быть полезны, например, если вы используете термины ...

Читать
 

Комментарии к «Как в шаблоне параграфа получить заголовок родительской ноды»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: