Путь меню в Патхауто

Как получить pathauto под Drupal 7 для генерации псевдонима URL по полному пути меню?

10 ответов

Решение

Просто обновление на случай, если кто-нибудь столкнется с этим с более свежей версией Pathauto/Token. Это сработало для меня:

[Узел: меню-ссылка: родители: нарисуйте путь]/[узел: меню-ссылка]

Я закончил тем, что использовал:

[node:menu-link:parent:url:path]/[node:menu-link]

Однако следует проявлять особую осторожность: если на узле нет ссылки на меню, у вас не будет автоматически добавленной страницы. С другой стороны, это может помочь вам осознать бесхозные страницы. (Считайте, что это особенность!)

Обратите внимание, что с помощью шаблона:

[node:menu-link:url:path]/[node:menu-link]

будет давать только ссылку меню узла, а не ссылку родителя (которая понадобится для ссылки на путь родителя).

Или шаблон: [node:parent:url:path]/[node:menu-link]

выдает ошибку в моем экземпляре Drupal 7 о недопустимых токенах (даже если у меня установлен модуль токенов).

[node:menu-link:parent:url:path]/[node:title]

Если узел не находится в меню, он не создает псевдоним. В противном случае это работает для n-уровневых меню.

Я думаю, что это должен быть такой шаблон сейчас:

[node:menu-link:url:path]/[node:menu-link]

"путь" вместо "псевдоним"

Шаблон, который работает для меня, следующий:

[node:menu-link:parent:url:alias]/[node:menu-link]

Я также установил модуль Token, как предложил Eaten. Не знаю, если [node:menu-link:parent:url:alias] является частью ядра или живет в Cont.

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

После установки я считаю, что [node: menu-link: parent] или [node: menu-link: parent: url] должны работать.

Если вы пытаетесь создать псевдонимы для страниц 3-го уровня или более, например:

Home page
 > Level 1 page
   > Level 2 page
     > Level 3 page

и вы хотите, чтобы псевдоним для страницы уровня 3 выглядел как http://domain.com/level-1/level-2/level-3Я заставил его работать на меня, установив мой шаблон:

[node:menu-link:parent:parent:parent:title]/[node:menu-link:parent:parent:title]/[node:menu-link:parent:title]/[node:title]

Обратите внимание, что я добавил :parent к жетону, и для первого я добавил его дважды.

Для тех, кто натыкается на этот ответ и задается вопросом, как добавить это:

Конфигурация> Поиск и метаданные> псевдонимы URL, затем создайте на вкладке "Шаблоны".

Наслаждайтесь!

[Узел: меню-ссылка: родители: нарисуйте путь]/[узел: название].html

Это решение, которое я использую:

[node:menu-link:parents:join:/]/[node:menu-link]

Он разделит родительские пункты меню тире. Это то, что мне нужно.

Другие вопросы по тегам