як відокремити ієрархію таксономії в патавто з косою рисою


14

Патавто, схоже, має інший спосіб ієрархії упорядкування таксономії.

З меню таксономії :

  1. Оголошення> Автомобілі> Aston Martin> DB9 Coupe
  2. Оголошення> Робота> Бухгалтерський облік

Я хочу щось подібне для URL-адреси:

  • оголошення / робочі місця / бухгалтерський облік (не бухгалтерський облік)

(Зверніть увагу, що Патхауто створює це також тире в зворотному порядку.)

У 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 рівнів глибокої (включаючи vocab), це буде [термін: словниковий запас] / [термін: батько: батько: батьків: ім'я] / [термін: батько: батьків: ім'я] / ... і т.д. ., правда? Я хочу, щоб модуль жетонів можна налаштувати таким чином, що вам не потрібно багато разів визначати батьків-дитини таким чином. Що робити, якщо несподівано ваше дерево перетвориться на 6 рівнів, тоді вам доведеться видалити та оновити свої шляхи, щоб включити інший, а потім стає глибиною на 7 рівнів тощо. Я маю на увазі, якщо один користувач додав терміни на один рівень вниз, він не може бачити його вміст, якщо адміністратор оновлює патавто!
січня

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] зробив. Зауваження: з приєднанням шляху ви не можете вибрати роздільник. Він просто використовує / як роздільник.

Якщо це не працює для вас, вам, ймовірно, потрібно встановити та включити модуль "сутність".
кодерама

Схема для 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:

[термін: батьки: приєднатися: /] / [термін: ім'я]

Як пояснюється у другій відповіді, приєднуйтесь:% separator% робить магію. Він замінює тире за замовчуванням на% separator%.

Велика подяка брунопсам!


Це має бути правильною відповіддю! Не важливо, скільки рівнів у вас є, це буде працювати.
Рантієв,

3

Ключі, щоб змусити це працювати:

  • встановити та включити модулі API Entity, Entity Tokens, Path Auto та Taxonomy.
  • створіть поле для вашого типу вмісту та встановіть Тип поля на Посилання на термін та назвіть його на кшталт "field-content-category" (назва машини)
  • Встановіть кількість значень, також "Максимальна кількість значень, які користувачі можуть ввести для цього поля" на 1 (дуже важливо, якщо ви хочете використовувати символи об'єднаного шляху, які автоматично додають / між елементами шляху).
  • встановіть шаблони URL-адрес (адміністратор / конфігурація / пошук / шлях / шаблони) на щось на зразок '[вузол: поле-зміст-категорія: батьки: об'єднати шлях] / [вузол: поле_контент_категорії] / [вузол: назва]'

0

Ну, я б рекомендував використовувати щось таке розумне, як:

[термін: батько: умови: зворотний: приєднатися :?]

Але я не можу за все життя змусити його працювати ні. Тож замість цього я рекомендую наступне, але ви можете пройти лише настільки глибоко, як дозволяє ієрархія (це можна побачити в моделях заміни). Якщо ви додасте терміни глибше в ієрархії, вам доведеться також оновити шаблон.

[термін: батьки-всі: 3] / [термін: батьки-всі: 2] / [термін: батьки-всі: 1]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.