wie man die Taxonomiehierarchie in pathauto mit Schrägstrichen trennt

14

Pathauto scheint eine andere Art zu haben, die Taxonomiehierarchie zu verfälschen .

Aus dem Taxonomie-Menü :

  1. Anzeigen> Autos> Aston Martin> DB9 Coupe
  2. Kleinanzeigen> Jobs> Buchhaltung

Was ich will, ist so etwas für die URL:

  • Kleinanzeigen / Jobs / Buchhaltung (nicht Buchhaltung-Jobs-Kleinanzeigen)

(Beachten Sie, dass Pathautho dies auch mit Strichen in umgekehrter Reihenfolge generiert.)

In Pathauto verwende ich dieses Muster: Default path pattern(gilt für alle Vokabeln mit leeren Mustern unten)

[term:parents-all]

Verwirrt.

jan
quelle

Antworten:

10

Wenn das Token- Modul aktiviert ist, können Sie ein Muster wie das folgende festlegen:

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

Machen Sie dieses Muster so lange Sie wollen. Ihre Wege werden dann:

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

und so weiter...

brunops
quelle
Vielen Dank an dich! Also, wenn ich eine Taxonomie-Hierarchie habe, die 5 Ebenen tief ist (einschließlich Vokabeln), wäre das [Begriff: Vokabeln] / [Begriff: Elternteil: Elternteil: Name] / [Begriff: Elternteil: Name] / ... usw. ., richtig? Ich wünschte, das Token-Modul könnte so konfiguriert werden, dass Sie Eltern-Kind nicht wiederholt auf diese Weise definieren müssen. Was passiert, wenn Ihr Baum unerwartet 6 Ebenen erreicht, müssen Sie Ihre Pfade löschen und aktualisieren, um einen anderen einzuschließen, und dann 7 Ebenen tief werden usw. Ich meine, wenn ein Benutzer Begriffe eine Ebene tiefer hinzufügt, kann er seinen Inhalt nur sehen, wenn Ein Administrator aktualisiert pathauto!
Januar
1
Auch wenn dies die akzeptierte Antwort ist, finden Sie in der Antwort von @ NenadP eine skalierbare Lösung.
Paul
16

Es gibt eine clevere Möglichkeit, dies mit join zu tun : /

In meinem Fall habe ich verwendet:

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

Wo field-taxonomy-skolskiist das Feld für die Auswahl des Begriffs aus dem Taxonomiebaum? Schrägstriche werden entfernt, obwohl eine Einstellung darunter vorgenommen wurde

Administration »Konfiguration» Suche und Metadaten »URL-Aliase» URL-Aliase - Einstellungen

am unteren Rand der Seite für PUNCTUATION Dropdown . Stellen Sie den Schrägstrich (/) auf "keine Aktion" anstelle von "Entfernen" ein.

NenadP
quelle
Bingo! Ich selbst habe die oben genannte nicht skalierbare Lösung angeboten ( drupal.stackexchange.com/questions/27141/… ) und diese gefällt mir natürlich viel besser. Ich würde schwören, dass diese Token-Option nicht da war, als ich darum kämpfte, dieses Muster zum Laufen zu bringen. Vielen Dank!
Artur
2
[...: join: /] hat bei mir nicht funktioniert, aber [...: join-path]. Bemerkung: Bei join-path kann man das Trennzeichen nicht wählen. Es wird nur / als Trennzeichen verwendet.
Wenn dies bei Ihnen nicht funktioniert, müssen Sie wahrscheinlich das Modul "entity" installieren und aktivieren.
Coderama
Das Muster für Drupal 8 ist etwas anders, zB: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma
6

Dieser funktioniert für mich auf Drupal 7.15 mit Token 7.x-1.3 und Pathauto 7.x-1.2:

[Begriff: Eltern: Beitritt: /] / [Begriff: Name]

Wie Brunops in der zweiten Antwort feststellte, macht join:% separator% die Magie. Es ersetzt den Standard-Bindestrich durch% separator%.

Ein großes Dankeschön an brunops!

Gefahr
quelle
Das muss die richtige Antwort sein! Es spielt keine Rolle, wie viele Ebenen Sie haben, dies wird funktionieren.
Rantiev
3

Die Schlüssel, um dies zum Laufen zu bringen, sind:

  • Installieren und aktivieren Sie die Module Entity API, Entity Tokens, Path Auto und Taxonomy.
  • Erstellen Sie ein Feld in Ihrem Inhaltstyp und setzen Sie den Feldtyp auf Term Reference.
  • Setzen Sie die Anzahl der Werte (auch bekannt als "Maximale Anzahl der Werte, die Benutzer für dieses Feld eingeben können") auf 1 (sehr wichtig, wenn Sie die Token für verknüpfte Pfade verwenden möchten, bei denen automatisch ein / zwischen den Pfadelementen eingefügt wird).
  • Setzen Sie die URL-Muster (admin / config / search / path / patterns) auf "[Knoten: Feldinhaltskategorie: Eltern: Verknüpfungspfad] / [Knoten: Feldinhaltskategorie] / [Knoten: Titel]".
rwilson0429
quelle
0

Nun, ich würde empfehlen, etwas Kluges zu verwenden wie:

[term: parent: terms: reverse: join :?]

Aber ich kann es nicht für mein Leben zum Laufen bringen. Daher empfehle ich stattdessen Folgendes, aber Sie können nur so tief gehen, wie es die Hierarchie zulässt (dies ist in Ersatzmustern zu sehen). Wenn Sie tiefer in der Hierarchie liegende Begriffe hinzufügen, müssen Sie auch das Muster aktualisieren.

[Begriff: Eltern-alle: 3] / [Begriff: Eltern-alle: 2] / [Begriff: Eltern-alle: 1]

7wunder
quelle