Как я могу сделать URL, отражающий структуру терминов Drupal, реализованную с помощью модуля Pathauto?

Есть словарь, подобный приведенному ниже, и его термин.

Словарь

World [Machine Name: world]

Термины таксономии

USA [URL Alias: usa]
 └─ California [URL Alias: usa/california]
       └─ Los Angeles [URL Alias: usa/california/losangeles]

И я хотел бы использовать модуль Pathauto и сделать URL-адрес страницы терминов losangeles, как показано ниже.

http://foo.com/usa/california/losangeles

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

В таком случае, как я могу установить его на странице настроек Pathauto (/ admin / config / search / path / patterns)?

Я перепробовал множество схем, но ничего не вышло. Версия Drupal - 7.52.

Если вы знаете решение, дайте мне знать. Большое Вам спасибо.


person atsushi    schedule 25.03.2017    source источник


Ответы (1)


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

Родители [термин: родители] Массив всех родителей термина, начиная с корня.

Это массив, в котором снова есть другой токен, который позволяет вам объединить их вместе.

Объединенный путь [термин: родители: объединенный путь] Значения массива, каждое из которых очищено Патауто, а затем объединено с помощью косой черты в строку, напоминающую URL-адрес.

Теперь у вас есть готовый путь до термина, на котором вы находитесь, который вам нужно будет добавить с помощью term: name.

Давать вам путь:

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

Это сгенерирует для вас правильный путь, независимо от того, насколько глубоко он

Usa, у которой нет родителей, и имя usa будет генерировать:

/usa

У Калифорнии есть один родитель по имени США, и она называется Калифорния будет генерировать

/usa/california

И последний из двух родителей, названный США и Калифорния, будет объединен в / usa / california и назван Лос-Анджелесом, и в результате получится

/usa/california/losangeles
person melvin    schedule 25.03.2017