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

Иногда возникает задача: в 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: шаблоны для taxonomy_term и view mode — как добавить?

Июль 19, 2025 г.

При работе с таксономией в Drupal нередко возникает потребность отображать термины по-разному в зависимости от контекста. Например, один и тот же термин в режиме teaser должен выводиться компактно, а в режиме full — с подробным описанием. Если вы используете ...

Читать

SpecialCharacters плагин в CKE5. Добавляем символы.

Апрель 11, 2025 г.

В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...

Читать

Убираем вставку   в пустые div контейнеры в CKEditor 5

Апрель 9, 2025 г.

Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела. Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+. Нам понадобится ...

Читать

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

Апрель 12, 2025 г.

Еще один oembed провайдер, который мне понадобился не давно - VK VIDEO. Нужно было интегрировать видео с ВКонтакте в медиа библиотеку Drupal. Если ...

Читать
 

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

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



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