Перейти к основному содержанию

Синоним url Alias для нод и терминов таксономии

Опубликовано Elena Ivleva -

При создании структуры сайта на Drupal 9 мне регулярно встречаются очень схожие задачи. Например, создать с помощью модулей Pathauto и Token синоним пути для материала, который включал бы термин таксономии из поля Term reference.

Для самих терминов как правило нужно создать синононим, включающий всю иерархию. то есть родителей, разделенных слешем, если они есть.

Вот наиболее распространенные примеры токенов:

Иерархические синонимы терминов таксономии.

[term:parents:join-path]/[term:name]

Иерархический синоним для материала, если у материала может быть выбран только один термин из словаря и термин может иметь иерархию.
Здесь field_stile_collezione поле Term reference с единственным возможным значением, причем в поле может быть выбран термин верхнего уровня, а может быть термин, имеющий родителей.

[node:field_stile_collezione:entity:parents:join-path]/[node:field_stile_collezione]/[node:title]

Возможные результаты:

classico/eleonora

classico/eleonora/composizione

Другая ситуация, как на данном сайте, когда в поле Term reference может быть выбрано несколько значений, причем из разных уровней. У меня еще в каждом материале есть несколько полей Term reference, каждое поле для своего словаря. тогда вариант со строгой иерархией мне не подходит и я использую для материалов другой синоним.
 

[node:field_spravochnik]/[node:field_resurs]/[node:title]

В результате все термины из одного поля записываются через дефис.