Teil 2: Drupal 7 Views Tutorial für Views 3
So, im zweiten Teil lernen wir Relationships (Beziehungen) und Contextual Filters (Argumente) kennen.
Als Beispiel nehme ich einen View aus unserem Projekt: http://www.knoepfbar.de. Wir wollen einen View erstellen, der uns alle Produkte einer bestimmten Kategorie, abhängig vom gerade angezeigten Produkt ausgibt!
Folgender Ausgangspunkt:
Wir haben einen Inhaltstypen oder eine Enity, in unserem Fall nutzen wir den Inhaltstypen "Product Display" der Commerce Produkte ausgibt. Des weiteren haben wir ein Taxonomy Vokabular für die Kategorisierung angelegt, bei knöpfbar gibt es die Kategorien "Klassisch", "Spezial", "Exquisit",... etc
Jedem Inhalt ist ein Produkt referenziert und eine Kategorie zugewiesen.
Daraus ergibt sich logischerweise das es jedes Produkt einmal gibt aber jeder Kategorie mehrere Produkte zugeordnet sein können. Wenn wir jetzt auf ein Produkt klicken möchten wir unter dem Produkt einen View ausgeben, der alle anderen Produkte dieser Kategorie angezeigt haben:
Wir erstellen also einen View aus Feldern des Inhaltstyps "Product Display" und brauchen dazu Informationen aus dem aktuell angezeigtem "Inhalt" (die Kategorie als Argument) und aus dem refenzierten Produkt (Preis etc. als Relationship). Wie man einen View erstellt habe ich bereits im ersten Teil gezeigt.
Arguments und Relationships
1. Das Argument
Als nächstes fügen wir unserem View ein Argument hinzu. "Contextual Filters" > "hinzufügen".
Wir wollen NUR Inhalte die der gleichen Kategorie angehören wie der aktuelle Inhalt. Ich suche mit also unter Inhalt das Feld Kategorie und füge es hinzu.
2. Die Beziehung
Nun ist unser View fast fertig, was wir jetzt noch benötigen sind Informationen aus dem referenziertem Produkt, den Preis zum Beispiel. Wenn wir das Feld "Product" anzeigen lassen wird nur ein "Add to Cart" Form angezeigt, aber der Preis ist im Produkt definiert. Wir brauchen also eine Beziehung zwischen dem vom View selektiertem Inhalt und dem darin referenziertem Produkt. Das Product wird also unsere Relationship:
Nachdem wir die Beziehung angelegt haben können wir weitere Felder der Anzeige hunzufügen, den Preis beispielsweise:
Es wird also für jeden Datensatz den unsere View aus der Datenbank holt ein Join zur Produkttabelle gemacht und das Preisfeld, abhängig vom referenziertem Produkt angezeigt. Ralationships sind also MySQL Joins.
Jetzt ist unsere View fertig und zeigt alle relevanten Informationen unserer Produkte an. Den Titel, den Bodytext, das referenzierte Produkt als "In den Warenkorb" Button und der Preis des Produktes.
Falls Ihr noch Fragen haben, einfach kommentieren!
Viel Erfolg!








Kommentare
Kommentar verfassen