Drupal: шаблоны для taxonomy_term и view mode — как добавить?

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

Если вы используете разные view mode для терминов таксономии, вполне логично захотеть разные Twig-шаблоны для каждого режима. Но есть нюанс: в отличие от сущностей node, по умолчанию Drupal не предоставляет template suggestions для taxonomy_term в зависимости от view mode.

Что Drupal делает по умолчанию

Когда Drupal рендерит термин таксономии, он ищет Twig-шаблон по следующим приоритетам:

  • taxonomy-term--[vocabulary].html.twig — шаблон для словаря, например tags;
  • taxonomy-term.html.twig — общий шаблон термина.

Однако, если термин отображается в режиме teaser, full, compact и т.п. — это никак не влияет на шаблон, потому что suggestions для view mode не генерируются автоматически.

Как добавить template suggestions для view mode вручную

Чтобы шаблоны могли различаться в зависимости от view mode, добавим нужные подсказки в файл вашей темы (.theme) через hook_theme_suggestions_taxonomy_term_alter():

После этого Drupal начнёт искать шаблоны:

  • taxonomy-term--teaser.html.twig
  • taxonomy-term--tags--teaser.html.twig

в зависимости от view mode и словаря.

Как это использовать

Допустим, вы хотите, чтобы термин из словаря topics в режиме teaser отображался особым образом. Создайте шаблон:

Затем добавьте в него нужную разметку и логику. Например:

На чаще всего копируют базовый шаблон и меняют его.

Нюансы

  • Требуется очистка кэша после добавления хука: drush cr или через интерфейс.
  • Используйте двойное тире (--) в именах шаблонов, а не подчеркивания.

Хотя Drupal не предлагает template suggestions по view mode для taxonomy_term из коробки, их можно легко добавить самостоятельно. Это делает темизацию терминов намного гибче и позволяет использовать все преимущества view mode, как у node.

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

Drupal: возврат страницы из контроллера с установкой cookie и использованием шаблона темы

Сентябрь 12, 2025 г.

В Drupal контроллеры чаще всего возвращают Renderable-массивы. Такие массивы автоматически проходят через систему рендеринга и подставляются в базовый шаблон темы (page.html.twig). Но иногда бывает нужно получить полный Response с темизацией вручную — ...

Читать

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

Декабрь 6, 2025 г.

Когда вам нужно создать PDF-документ с использованием библиотеки mPDF, бывает необходимо сделать так, чтобы на первой странице отображался отдельный футер (или хидер), отличающийся от остальных страниц. В этом примере мы рассмотрим, как использовать селектор ...

Читать

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

Август 3, 2025 г.

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

Читать

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

Март 9, 2025 г.

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

Читать
 

Комментарии к «Drupal: шаблоны для taxonomy_term и view mode — как добавить?»

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



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