Wie kann ich mit pathauto URLs für tief verschachtelte Vokabulare generieren?

6

Ich generiere Breadcrumbs aus URL-Argumenten, wie hier beschrieben .

Ich habe einen Wortschatz, der so aussieht:

Kunst-> Performing-> Tanzen-> Ballett

Ich möchte, dass meine URL so aussieht: Kunst / Performing / Tanzen / Ballett

Mit dem Pathauto-Modul kann ich dies für taxonomische Begriffe tun:

[term:parent]/[term:name]

Was mir auf der Ballettseite Folgendes gibt: nicht was ich will:

dancing/ballet 

Wenn ich Eltern anstelle von Eltern verwende, ( [term:parents]/[term:name]); das ist nah aber nicht ganz:

arts-performing-dancing/ballet

Wie komme ich von arts-performing-dancingnach arts/performing/dancing?

Patrick Kenny
quelle

Antworten:

9

Versuchen Sie so etwas als Vokabular:

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

Und deine letzte Frage sollte verschwinden.

Stellen Sie nur sicher, dass Sie den parent:Teil mindestens so oft wiederholen, wie es die maximale Begriffstiefe in Ihrem Wortschatz erwartet. Pathauto überspringt intelligent Overhead-Elemente.

Ich weiß, dass es nicht super skalierbar ist, aber es funktioniert für mich.

Artur
quelle
Das hat es geschafft! Wenn Leistung zu einem Problem wird, werde ich nach einem besseren Weg suchen, aber das ist definitiv gut genug für den Moment.
Patrick Kenny
5

Ich habe einen besseren Weg gefunden, der skaliert

[node:menu-link:parents:join-path]/[node:title] 
sho
quelle
Einverstanden. Dieses Token war nicht verfügbar, als ich meine nicht skalierbare Lösung vorschlug :)
Artur
4

Alle diese Antworten sind richtig, aber Sie können auch das Taxonomy-Entitätsindexmodul verwenden, das Taxonomie-Token bereitstellt. Probleme beginnen, wenn Ihr Begriff Schrägstriche enthält.

Das Taxonomie-Entitätsindexmodul verwaltet einen normalisierten Index aller Begriffe, die einer bestimmten Entität und Revision zugeordnet sind. Die Kerntabelle {taxonomy_index} verwaltet nur ihre Daten für veröffentlichte Knoten. Dieses Modul verwaltet seine Daten für alle Entitätstypen (unabhängig davon, ob sie veröffentlicht wurden oder nicht) und wird auch durch Überarbeitung indiziert.

Bery
quelle
1

Wenn Sie ein Muster für Drupal 8 finden, verwenden Sie [term:parents:join:/]/[term:name]

Beispielergebnis: arts/performing/dancing

Da unser Trennzeichen ein Schrägstrich ist, vergessen Sie nicht, das Entfernen der Schrägstriche unter Administration> Konfiguration> Suche und Metadaten> URL-Aliase> Einstellungen zu deaktivieren. Gehen Sie zu / admin / config / search / path / settings, Abschnitt Interpunktion , suchen Sie nach Schrägstrich (/). und wählen Sie "Keine Aktion (nicht entfernen)" in der Dropdown-Liste.

Martin Klíma
quelle
0

Verwenden Sie das folgende Muster für den Pfadalias : [term:i18n-vocabulary]/[term:parents:join-path]/[term:i18n-name].

Marius
quelle