Как программно изменить псевдоним URL-адреса, созданный типом контента?


Наш текущий шаблон URL-адреса [узел: ссылка на меню: родители: путь к соединению]/[узел: заголовок]. Что нам нужно, так это способ не включать элементы ссылок родительского меню и включать только элементы ссылок дочернего меню.

Например:

Current Menu Structure

Ожидаемый результат следующий:

  • Когда какая-либо ссылка меню размещается на том же уровне, что и "Четвертый уровень 1" (под верхним уровнем), она должна быть ".com/Второй уровень 1/Третий уровень-1/Четвертый уровень-3"
  • Текущая проблема заключается в том, что URL-адрес генерируется как ".com/Верхнего уровня/Второго уровня1/Третьего уровня-1/Четвертого уровня-3"
  • Мы хотим удалить верхний уровень, верхний уровень 2, верхний уровень 3 и т.д., Удаленные из псевдонима URL-пути.
  • В зависимости от расположения элемента ссылки меню, он всегда должен содержать ссылки меню на 1 уровень выше (если применимо)
  • Ожидаемый шаблон URL-адреса для третьего уровня 2 (под верхним уровнем/вторым уровнем 1) является ".com/второй уровень-1/третий уровень-2"

Обновлено:

В итоге я написал пользовательский модуль для вызова hook_alter с помощью pathauto, который просто удаляет первую часть URL-адреса перед событием сохранения узла.

Author: sf_admin819, 2016-08-10

2 answers

Вы можете использовать этот модуль https://www.drupal.org/project/pathauto с помощью этого вы определяете пользовательский токен использования пути

 1
Author: SIS Technologies, 2016-08-10 18:14:34

Возможно, вы сможете заставить это работать, используя модуль Правила вместе с модулем Правила пути , используя такой подход:

  • Событие правил: примерно в то время, когда узел сохраняется (или обновляется и т. Д.).
  • Условие правил: используйте Правила пути , которые предоставляют различные условия правил " для проверки URL-адреса по заданной строке " (примеры такой проверки см. на странице проекта этого модуля). Похоже, что проверка ваших шаблонов URL-адресов следует быть прямолинейным с этим модулем.
  • Действие правил: используйте действие "Создать или удалить псевдоним URL-адреса узла", чтобы изменить псевдоним URL-адреса. Это действие правил аналогично использованию модуля Pathauto, вы можете использовать токены для создания соответствующего пути.
 1
Author: Pierre.Vriens, 2016-08-10 21:18:32