Ich habe eine Ansicht, die eine Liste von Artikeln zeigt, die sich befindet unter:
mypage.com/articles
Jeder Artikel ist wie folgt mit seiner Haupt-Unterseitenansicht verknüpft:
mypage.com/articles/name-of-my-artile-yay
Der URL-Pfad wird mit Autopathen- und URL-Aliasnamen erstellt.
Wie erstelle ich in Ansichten einen Kontextfilter, um nur die ausgewählte Unterseitenansicht anzuzeigen?
Ich habe dies als meinen Weg in Ansichten:
Artikel/%
aber ich weiß nicht, wohin ich von hier aus gehen soll. Ich habe versucht, den Titel in Kleinbuchstaben zu schreiben und Leerzeichen durch einen Bindestrich zu ersetzen, aber das funktioniert nicht immer, und die URL-Aliase ändern die URL so, dass Wörter wie:
a, an, as, at, before, aber by
Und wenn ein Seitentitel lautet:
Dies ist mein Seitentitel - damit
Der URL-Alias lautet:
my-page-title
Daher kann es in meinem Kontextfilter nicht mit dem Seitentitel übereinstimmen.
Was vermisse ich?
URL path Alias
und nicht der Titel.articles/my-page-title
Dies ist der Alias für den URL-Pfad.Antworten:
Ich denke, der einfachste Weg ist, Panels zu verwenden und die Knotenseite zu überschreiben. Fügen Sie eine Variante hinzu, fügen Sie Ihre Ansicht hinzu und senden Sie das Argument nid des Knotens mit dem Kontextargument node: nid an diesen.
Alles ist getan.
quelle
Add a variant, set a validation criteria selecting your concerned node type
ich nur eine Option, unterVariant type
derPanel
. Ist das korrekt?article
Inhaltstyp. Ich gehe davon aus, dass es mit # 3 zu tun hat, aber ich hatte nur eine Option unter Variantentyp:Panel
Was habe ich verpasst?Setzen Sie den Pfadalias für den Inhaltstyp auf so etwas wie
articles/[node:title]
Option 1: Verwenden von Ansichten zum Ausführen von Detailseiten
In Ansichten:
Page
Ansicht mit dem Pfad auf/articles/%
Hinzufügen von Kontextfiltern Inhalt: Nid und setzen Sie es auf Folgendes:
Dies führt eine Pfadsuche für das letzte URL-Segment durch (so etwas wie "Mein-Artikel-Titel-Pfad-Alias") und gibt die richtige Knoten-ID zurück.
Option 2: Ansichten umgehen, um Detailseiten auszuführen
Anstatt den Pfad so
/articles/%
einfach wie/articles
festzulegen/articles/%
, lassen Sie alle Alias- Knoten mit Pfad normal auflösen.quelle
Fügen Sie einen Kontextfilter für die Knoten-ID hinzu und geben Sie die Standardeinstellung mit PHP an:
Dies wird beispielsweise zurückgegeben,
node/123
wenn der Titel des Knotens 123 Meine Seite und Titel war und Sie auf die Ansicht unter zugegriffen habenexample.com/the_view/my-page-title
.quelle
1) Global: Null 2) (Artikel) Inhalt / Knoten: nid Wenn der Filterwert NICHT verfügbar ist Standardwert angeben: Rohwert aus URL
quelle
Versuchen Sie diesen Ansatz ...
Sie greifen zuerst auf den normalen Drupal-Pfad "node / nid" zu, nehmen dann die nid, um die volle Last zu laden, und verwenden dann den Knotentitel als Kontextfilter.
1) Holen Sie sich den normalen Pfad des aktuellen Knotens, der angezeigt wird ...
2) Dies kann teuer sein, aber versuchen Sie es ... erhalten Sie die aktuelle NID
Sag mir, ob es funktioniert.
Ihr Pathauto entfernt Wörter auf eine Weise, die mir noch nicht begegnet ist. Sind Sie sicher, dass sie richtig konfiguriert sind?
quelle
Ich hatte ein sehr ähnliches Problem und fand nicht nur die Lösung, sondern lernte auch neue Dinge über die Funktionsweise der Ansicht. Lassen Sie mich mitteilen, was ich gelernt habe und auch die Lösung für Ihr Problem.
Wenn Sie eine Ansicht mit einem oder mehreren Kontextfiltern erstellen, muss die Ansicht von irgendwoher Werte dieser Filter erhalten. Dies kann erfolgen durch -
foo/%/bar
oderfoo/bar/%
für einen einzelnen Kontextfilter ODER des Formularsfoo/%/bar/%
oderfoo/bar/%/%
für mehrere FilterDie Lösung für Ihr spezifisches Problem besteht darin, in den Abschnitten, auf die die Pfeile im obigen Bild zeigen, einen sehr ähnlichen Code zu verwenden.
Hier ist der Link, der sich als große Hilfe für mich erwiesen hat - http://www.drupalfoo.com/drupal-7-views-contextual-filter-argument-node-reference-using-url-alias
quelle