Wie kann ich eine Taxonomie- / Term- /% -Liste mit einer Ansicht überschreiben?


28

Ich habe einen Wortschatz an einen Inhaltstyp angehängt. Es kann nur ein Begriff ausgewählt werden, um einen mit diesem Inhaltstyp erstellten Knoten zu kategorisieren. Das Vokabular heißt Fahrzeuge und enthält Begriffe wie "Autos, Lastwagen, Boote". Der Inhaltstyp wird auch Fahrzeuge genannt.

Ich benutze path auto, damit es [vocabulary: name] / [term: name] anzeigt. Wenn es also gerendert wird, werden zum Beispiel site.com/vehicles/trucks angezeigt, die alle Trucks zeigen ... typisches Drupal-Zeug. Okay...

Jetzt habe ich eine Ansicht, die eine Seite mit einem Pfad "Fahrzeuge" ist. Es ist so eingerichtet, dass alle Elemente des Inhaltstyps "Fahrzeuge" angezeigt werden. Diese Seitenansicht ist auch so eingerichtet, dass ein Argument 'Taxonomiebegriff-ID' verwendet wird.

Beachten Sie, dass bei Vorhandensein des Taxonomiebegriffs der für den Taxonomiepfad generierte URL-Alias ​​genau mit dem auf der Seite "Ansichten" angegebenen Argument übereinstimmt:

URL-Alias-Taxonomiepfad = Fahrzeuge / LKWs. Ansichtsseite mit Argument = Fahrzeuge / LKW.

Dies ist absichtlich. Mein Ziel war es, alle Ergebnisse dieses Inhaltstyps anzuzeigen, wenn ein Argument nicht vorhanden war, und wenn es vorhanden war, die Ergebnisse vor allem auf der Grundlage dieses Taxonomiebegriffs zu filtern UND die gleichen Felder und Strukturen wie ohne das Argument beizubehalten (wie site.com/vehicles).

Das Problem ist, dass dies nicht wie erwartet funktioniert. site.com/vehicles zeigt meine Ansicht und die zugehörigen Filter korrekt an. site.com/vehicles/trucks zeigt nur die reguläre, unformatierte Taxonomieliste, die von Drupal bereitgestellt wird.

Liegt das daran, dass das Taxonomiebegriffs-ID-Argument nicht richtig konfiguriert ist?

Ist dies ein Gewichtsproblem, bei dem Taxonomie-Hooks nach Views ausgelöst werden? Wenn ja, wie kann ich die Gewichte hier neu anordnen, damit sie richtig ausgelöst werden und mir die Ergebnisse liefern, die ich benötige?

Ich weiß, was Sie vorschlagen werden - dass Views mit Taxonomie- / Term- /% -Ansicht geliefert wird, um Drupal-Standardansichten zu überschreiben.

Dies wird jedoch in meinem Fall nicht funktionieren. Ich habe mehrere Inhaltstypen, von denen jeder sein eigenes Vokabular hat und von denen jeder seine Sichtbarkeit und einen eigenen Satz von Feldern hat (Häuser und Autos haben zum Beispiel sehr unterschiedliche Feldsätze). Die Taxonomie / term /% würde funktionieren, wenn alle Inhaltstypen die gleichen Felder hätten. Dann könnte ich nur die in dieser Überschreibung nachahmen, aber da dies nicht der Fall ist, wie kann ich meinen Pfad mit Argument korrekt ermitteln, um die Ergebnisse basierend auf anzuzeigen diesen Wortschatz und meine Feldstruktur behalten?

Entschuldigung, wenn das verwirrend war. Ein Link zu der Website als Referenz http://www.buyagainbaby.com . Die Site verwendet derzeit Taxonomie / Begriff /% als Überschreibung, dies muss jedoch erneut geändert werden, damit jede Ansicht dafür verantwortlich ist, wie ihre Ergebnismenge basierend auf Taxonomie dargestellt wird.

Antworten:


20

All diese Antworten sind großartige Lösungen, und vielen Dank, dass Sie sich die Zeit genommen haben, solche informativen Antworten zu geben. Ashlar, Ihre Antwort hat mir viel über die Funktionsweise der Taxonomie und die Beziehung zwischen Ansichten und Taxonomie beigebracht.

Ich habe eine Lösung gefunden, die für meine Situation großartig ist, und ich werde sie Ihnen mitteilen, falls sie Ihnen auch helfen könnte.

Wie ich oben erklärt habe, bestand mein Problem darin, dass meine Ansicht ohne Argument die gewünschten Ergebnisse lieferte, aber die Standard-Taxonomie-Ansicht mit einem Argument, das nicht das war, was ich wollte.

Um dies zu lösen, habe ich das Modul Taxonomy Display http://drupal.org/project/taxonomy_display installiert . Ich habe dann jede Ansicht neu konfiguriert, um die Taxonomie-Term-ID als Argument zu verwenden.

Mit der Taxonomie-Anzeige können Sie einer bestimmten Ansicht ein Vokabular zuordnen. Wenn ich nun auf Fahrzeuge / LKWs klicke, was ein Alias ​​für Taxonomie / Begriff / 3 ist, übernimmt die Ansicht und dies wird tatsächlich korrekt wiedergegeben, wobei die Integrität der Feldstruktur beibehalten wird.

Wenn jemand mehr Details über die Konfiguration wissen möchte, lass es mich wissen.


Ihre Lösung klingt nach einem großartigen Plan! Leider erhalte ich den Teil "Taxonomie-Anzeige ermöglicht das Verknüpfen eines Wortschatzes mit einer bestimmten Ansicht" nicht ... Können Sie es mir etwas genauer erklären?
Michiel

Sobald das Taxonomie-Anzeigemodul installiert ist, sehen Sie in seinen Einstellungsoptionen, wie Taxonomie-Begriffslisten angezeigt werden. Ansichten ist eine Option. Sie wählen die Ansicht aus und anschließend, wie das Element in dieser Ansicht in Ihrer Taxonomieliste aussehen soll. Dies alles setzt voraus, dass Sie bereits eine Ansicht erstellt haben, in der der Inhalt so aufgeführt ist, wie Sie es möchten. Sobald Sie auf Speichern klicken, sieht Ihre Taxonomieliste genauso aus wie die Ausgabe der Ansicht, die Sie in den Einstellungen ausgewählt haben.
blue928

7

Ich glaube, es gibt mehrere Faktoren, die Sie bei Ihrem Setup berücksichtigen sollten:

  • Jeder Pfad muss eindeutig sein, um auf eine Seite, einen Begriff, eine Ansicht oder einen Seitenbereich zuzugreifen. Wenn Sie zwei Inhalte mit derselben Adresse haben, verlieren Sie die Kontrolle über die Anzeige. Drupal gibt dem Taxonomiebegriff Vorrang vor Ansichten, sodass es nicht aufgerufen wird. Die Ansichtsdefinition unter Verwendung von Taxonomie / Begriff / # fängt den Taxonomiebegriff ab, zeigt jedoch, wie Sie angegeben haben, keine aussagekräftige URL an.

  • Views reagieren nicht auf Aliase. Dies liegt daran, dass Drupal bei jeder Anforderung als Erstes den Alias ​​für alle Drupal-Inhalte in einen Node / NID-Formatstandard konvertiert. In Ihrem Fall werden also Fahrzeuge / LKWs in den Knoten / # konvertiert, der der Ansicht zugewiesen ist. View kann den Kontext nicht direkt von einem Alias ​​übernehmen.

Um das zu bekommen, was Sie wollen, tun Sie eines von mehreren Dingen.

  • Erstellen Sie ein Menü mit den Rückrufen, die auf den Pfad Ihrer Ansicht festgelegt sind. Dadurch wird die richtige URL generiert und die Ansicht kann antworten.

  • Verwenden Sie Panels mit aktiviertem Page Manager (in Ctools Suite). Wenn Sie ein Seitenfenster definieren, das für die entsprechende URL definiert ist, können Sie Ihre Ansicht im Bedienfeldfenster platzieren oder den Kontext von der Bedienfeldseite direkt an ein Inhaltsfenster für Ansichten übergeben. Ein Inhaltsbereich hat keinen Pfad. Stattdessen werden die Kontexte wie der Pfad verwendet, der direkt vom Seitenfenster festgelegt wurde, um den Inhalt zu erstellen. Diese Videoserie auf nodeone.se zeigt hervorragend, wie Panels und der Seitenmanager effektiv eingesetzt werden.

  • Eine andere Möglichkeit, Inhalte auf den Bildschirm zu bringen, ist die Verwendung des Quicktabs- Moduls. Ich denke, es passt nicht zu Ihrer spezifischen Situation, aber es kann auch direkt auf Ansichten zugreifen, indem Sie die Registerkarten auswählen, die Sie für eine Seite definieren.


3

Views verfügt über eine integrierte Ansicht, die Taxonomiebedingungen emuliert und überschreibt. Aktivieren Sie es einfach, um Taxonomie-Listen mit Ansichten zu überschreiben. Taxonomie-Ansicht


2

Ich habe vor ein paar Tagen tatsächlich etwas Ähnliches gemacht. Meine Lösung ist nicht elegant, aber es funktioniert. Was ich getan habe, war, die Anzeige der Taxonomiebegriffe mit Hilfe von Bedienfeldern und nicht mit Hilfe von Ansichten zu überschreiben. Ich habe dann alle meine unterschiedlichen Ansichten für jeden Begriff zum Inhaltsbereich der Kontrollfelder hinzugefügt. Da in meinem Fall jede Ansicht einen Filter hat, der sie auf Ergebnisse eines bestimmten Wortschatzes beschränkt, wird beim Aufrufen der Taxonomiebegriffs-Seite nur die Ansicht für diesen bestimmten Wortschatz angezeigt.

Lassen Sie mich wissen, wenn Sie weitere Informationen darüber benötigen, wie ich dies implementiert habe.


Ich bin kein großer Fan von Panels, aber das ist ein möglicher Weg. Außerdem habe ich dieses Tutorial hier verfolgt: leveltendesign.com/blog/dustin-currie/… . Dies funktioniert einwandfrei, außer dass die Taxonomie-ID verwendet wird, ich jedoch den Taxonomienamen wie bei Bindestrichen anstelle von Leerzeichen benötige. Hast du jemals so einen Trick gemacht?
blue928

2
Wir machen das die ganze Zeit. Panels definiert eine Seite für diese (obwohl standardmäßig deaktiviert) aus der Box, so würde ich dies kaum als unelegant bezeichnen.
mpdonadio

Ich hätte gerne mehr Details! :)
Chris Happy

1

WebbyKat hat eine großartige Lösung vorgeschlagen, mit der Sie den Seitenpfad auf /taxonomy/term/%anstatt auf festlegen können/categories/%

Es funktioniert, aber es werden alle Ihre Begriffe in einer Ansicht neu geschrieben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.