как отделить иерархию таксономии в патхауто с косой чертой


14

Кажется, у Патхауто другой способ навязывания иерархии таксономии.

Из меню таксономии :

  1. Объявления> Автомобили> Aston Martin> DB9 Coupe
  2. Объявления> Работа> Бухгалтерия

Я хочу что-то вроде этого для URL:

  • объявления / работа / бухгалтерия (не бухгалтерия-вакансии-объявления)

(Обратите внимание, что Pathautho генерирует это с тире в обратном порядке.)

В Pathauto я использую этот шаблон: Default path pattern(применяется ко всем словарям с пустыми шаблонами ниже)

[term:parents-all]

Смущенный.

Ответы:


10

С включенным модулем Token вы можете установить шаблон так:

[term:vocabulary]/[term:parent:parent:name]/[term:parent:name]/[term:name]

Сделайте этот шаблон так долго, как вы хотите. Ваши пути станут:

vocabulary
vocabulary/category1
vocabulary/category1/subcategory1
vocabulary/category1/subcategory2
vocabulary/category1/subcategory2/subsubcategory1

и так далее...


Большое спасибо Вам! Поэтому, если у меня есть иерархия таксономии на 5 уровней (включая вокаб), то это будет [термин: словарь] / [термин: родитель: родитель: родитель: имя] / [термин: родитель: родитель: имя] / ... и т. Д. ., право? Я хочу, чтобы модуль токенов можно было настроить таким образом, чтобы вам не нужно было повторно определять parent-child таким образом. Что если неожиданно ваше дерево станет 6-ю уровнями, то вам придется удалить и обновить пути, чтобы включить другой, а затем станет 7-ю уровнями и т. Д. админ обновляет pathauto!
янв

1
Несмотря на то, что это приемлемый ответ, просмотрите ответ @ NenadP для масштабируемого решения.
Пол

16

Есть умный способ сделать это, используя join: /

В моем случае я использовал:

[node:field-taxonomy-skolski:parents:join:/]

где field-taxonomy-skolskiполе для выбора термина из дерева таксономии. Прямая косая черта будет удалена, хотя есть настройка под

Администрирование »Конфигурация» Поиск и метаданные »Псевдонимы URL» Псевдонимы URL - настройки

внизу страницы для выпадающего меню PUNCTUATION . Установите косую черту (/) «без действия» вместо «удалить».


Бинго! Я сам предложил вышеупомянутое немасштабируемое решение ( drupal.stackexchange.com/questions/27141/… ), и, конечно, мне оно гораздо больше нравится. Я клянусь, что этой опции токена не было, когда я изо всех сил пытался заставить работать этот шаблон. Благодарность!
Артур

2
[...: join: /] у меня не сработало, но [...: join-path] сработало. Примечание: с join-path вы не можете выбрать разделитель. Он просто использует / в качестве разделителя.

Если это не работает для вас, вам, вероятно, нужно установить и включить модуль "entity".
Coderama

Шаблон для Drupal 8 немного отличается, например: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma

6

Этот работает для меня на Drupal 7.15 с Token 7.x-1.3 и Pathauto 7.x-1.2:

[Термин: родители: присоединиться: /] / [термин: имя]

Как сказал второй ответ brunops, join:% separator% делает магию. Он заменяет черту по умолчанию на% separator%.

Большое спасибо брюнетам!


Это должен быть правильный ответ! Неважно, сколько у вас уровней, это будет работать.
Рантьев

3

Ключи к тому, чтобы заставить это работать:

  • установите и активируйте модули Entity API, Entity Tokens, Path Auto и Taxonomy.
  • создайте поле для вашего типа контента и задайте в поле «Тип поля» ссылку на термин и назовите его как «field-content-category» (имя машины)
  • Установите для параметра «Количество значений», то есть «Максимальное количество значений, которое пользователи могут ввести для этого поля» значение 1 (очень важно, если вы хотите использовать токены объединенного пути, которые автоматически добавляют / между элементами пути).
  • установите шаблоны URL (admin / config / search / path / Pattern) на что-то вроде «[узел: поле-контент-категория: родители: путь соединения] / [узел: поле_контент_категории] / [узел: название]»

0

Ну, я бы порекомендовал использовать что-то умное, как:

[Термин: Родитель: термины: обратная: присоединиться к :?]

Но я не могу ради своей жизни заставить его работать ни. Поэтому вместо этого я рекомендую следующее, но вы можете углубиться настолько, насколько позволяет иерархия (это можно увидеть в шаблонах замены). Если вы добавите термины глубже в иерархию, вам также придется обновить шаблон.

[Термин: родители-все: 3] / [термин: родители-все: 2] / [термин: родители-все: 1]

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.