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

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

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

Чтение данных из oembed провайдера

Март 11, 2025 г.

В Drupal 10/11 поддержка Oembed провайдеров в ядре (модуль media) позволяет легко и непринуждённо читать данные о медиа прямо из провайдера. Ранее я рассказывал как зарегистрировать oembed для rutube, чтобы иметь возможность оперировать видео контентом ...

Читать

Фильтр по годам во views

Март 19, 2025 г.

Задача проста - есть материалы, у которых есть поле даты (timestamp), нужно вывести кнопки фильтрующие список по годам. Дополнительно задача ...

Читать

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

Апрель 6, 2025 г.

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

Читать

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

Апрель 11, 2025 г.

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

Читать
 

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

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



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