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

Иногда возникает задача: в 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 вернёт именно «прямого родителя». В таком случае нужно решать, откуда брать заголовок — от ближайшего контейнера или искать выше по иерархии до ноды. Для базовых сценариев приведённого кода достаточно.

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

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

Март 13, 2025 г.

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

Читать

Как получить определения из конфигурационных файлов схем Drupal

Апрель 6, 2025 г.

Drupal config API позволяет не только прочитать сами настройки, но и файлы их определений. В общем то это очевидно, покажу как это делается. Допустим ...

Читать

Rutube: интегрируем как oembed provider source в Drupal

Февраль 28, 2025 г.

Задача - добавить rutube как oembed провайдера в медиа библиотеку, чтобы можно было создать медиа тип Rutube, где будет поле для ввода ссылки. Медиа поля ...

Читать

Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами

Август 8, 2025 г.

В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date, а также функцию format_date(). В этой статье ...

Читать
 

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

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



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