jak oddzielić hierarchię taksonomii w pathauto za pomocą ukośników


14

Pathauto wydaje się mieć inny sposób aliasingu hierarchii taksonomicznej.

Z menu taksonomii :

  1. Ogłoszenia> Samochody> Aston Martin> DB9 Coupe
  2. Ogłoszenia> Praca> Księgowość

To, czego chcę, to coś takiego dla adresu URL:

  • ogłoszenia / praca / księgowość (nie księgowość-praca-ogłoszenia)

(Zauważ, że Pathautho generuje to również z myślnikami w odwrotnej kolejności).

W Pathauto używam tego wzoru: Default path pattern(dotyczy wszystkich słowników z pustymi wzorami poniżej)

[term:parents-all]

Zmieszany.

Odpowiedzi:


10

Po włączeniu modułu Token możesz ustawić następujący wzór:

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

Wykonaj ten wzór tak długo, jak chcesz. Twoje ścieżki staną się wtedy:

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

i tak dalej...


Wielkie dzięki! Więc jeśli mam hierarchię taksonomii o 5 poziomach głębokości (w tym słownictwo), byłoby to [termin: słownictwo] / [termin: rodzic: rodzic: rodzic: nazwa] / [termin: rodzic: rodzic: nazwa] / ... itd. ., dobrze? Chciałbym, aby moduł tokenów mógł być skonfigurowany w taki sposób, że nie trzeba wielokrotnie definiować rodzic-dziecko w ten sposób. Co jeśli nieoczekiwanie twoje drzewo stanie się 6 poziomami, wówczas będziesz musiał usunąć i zaktualizować ścieżki, aby uwzględnić kolejny, a następnie osiągnie poziom 7 poziomów itd. To znaczy, jeśli jeden użytkownik doda warunki o jeden poziom niżej, nie zobaczy swojej zawartości, chyba że administrator aktualizuje pathauto!
sty

1
Chociaż jest to zaakceptowana odpowiedź, przejrzyj odpowiedź @ NenadP, aby uzyskać skalowalne rozwiązanie.
Paul

16

Jest sprytny sposób, aby to zrobić za pomocą join: /

W moim przypadku użyłem:

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

gdzie field-taxonomy-skolskijest pole wyboru terminu z drzewa taksonomii. Przednie ukośniki zostaną usunięte, choć poniżej znajduje się ustawienie

Administracja »Konfiguracja» Wyszukiwanie i metadane »Aliasy URL» Aliasy URL - ustawienia

na dole strony menu rozwijanego PUNCTUATION . Ustaw slash (/) „brak akcji” zamiast „usuń”.


Bingo! Sam zaoferowałem powyższe nieskalowalne rozwiązanie ( drupal.stackexchange.com/questions/27141/... ) i oczywiście podoba mi się to znacznie lepiej. Przysięgam, że ta opcja tokena nie istniała, kiedy walczyłem o uruchomienie tego wzoru. Dzięki!
Artur

2
[...: join: /] nie działało dla mnie, ale [...: join-path] działało. Uwaga: w przypadku ścieżki łączenia nie można wybrać separatora. Po prostu używa / jako separatora.

Jeśli to nie zadziała, prawdopodobnie musisz zainstalować i włączyć moduł „encja”.
coderama

Wzór dla Drupala 8 jest nieco inny, np .: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma,

6

Ten działa dla mnie na Drupal 7.15 z Tokenem 7.x-1.3 i Pathauto 7.x-1.2:

[termin: rodzice: dołącz: /] / [termin: imię]

Jak stwierdził Brunops w drugiej odpowiedzi, dołącz:% separator% robi magię. Zastępuje domyślną myślnik% separator%.

Wielkie podziękowania dla brunops!


To musi być właściwa odpowiedź! Nie ma znaczenia, ile masz poziomów, to zadziała.
Rantiev

3

Kluczem do uruchomienia tego jest:

  • zainstaluj i włącz moduły Entity API, Entity Tokeny, Path Auto i Taksonomia.
  • utwórz pole na swoim typie treści i ustaw Typ pola na Termin Odwołanie i nazwij go coś w rodzaju „field-content-category” (nazwa maszyny)
  • Ustaw liczbę wartości, alias „Maksymalna liczba wartości, które użytkownicy mogą wprowadzić w tym polu” na 1 (bardzo ważne, jeśli chcesz użyć tokenów połączonej ścieżki, które automatycznie dodają / między elementami ścieżki).
  • ustaw wzorce adresów URL (admin / config / search / path / patterns) na coś w rodzaju „[node: field-content-category: parent: join-path] / [node: field_content_category] / [node: title]”

0

Cóż, poleciłbym użycie czegoś inteligentnego, takiego jak:

[termin: rodzic: warunki: odwrócone: dołącz :?]

Ale nie mogę, żeby moje życie nie działało. Zamiast tego zalecam następujące, ale możesz wejść tak głęboko, jak pozwala na to hierarchia (można to zobaczyć we wzorcach zastępczych). Jeśli dodasz warunki głębiej w hierarchii, będziesz musiał również zaktualizować wzorzec.

[termin: rodzice-wszyscy: 3] / [termin: rodzice-wszyscy: 2] / [termin: rodzice-wszyscy: 1]

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.