logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Views Kontextfilter, Beziehungen – Argumente und Beziehungen (Verknüpfungen)

26/05/2025, by Ivan

In dieser Lektion werde ich besonders auf die Arbeit mit Argumenten in Views eingehen. Argumente sind Teile der URL, zum Beispiel:

node/15
Das erste Argument ist node, das zweite 15.
taxonomy/term/10
Das erste Argument taxonomy, das zweite term, das dritte 10.
user/67
Das erste Argument user, das zweite 67

Ich denke, diese Beispiele sind anschaulich und benötigen keine weiteren Erklärungen.

Argumente können mit der Funktion arg() abgerufen werden:

<?php
print arg(0) . '<br />';
print arg(1);
?>

Wenn die URL node/15 war, wird ausgegeben:

node
15

Die Nummerierung der Argumente in der Funktion arg beginnt bei 0. Schauen wir uns nun an, welche fertigen Lösungen es im Modul Views gibt.

Ausgabe von Benutzer-Nodes

Angenommen, wir befinden uns auf der Seite user/1 und möchten einen Block mit Nodes des Benutzers mit uid = 1 anzeigen. Dafür verwenden wir das Argument aus der URL.

Wir erstellen eine neue View. Ausgabe als Block, als Felder geben wir den Titel der Node an, natürlich nur veröffentlichte Nodes anzeigen, sortiert nach Postdatum.

Titel
Titel: user_nodes
Format
Format: Unformatted list | Einstellungen
Anzeigen: Felder | Einstellungen
Felder
Inhalt: Titel
Filterkriterien
Inhalt: Veröffentlicht (Ja)
Sortierkriterien
Inhalt: Postdatum (absteigend)
Paginator
Paginator verwenden: Angegebene Anzahl von Elementen anzeigen | 15 Stück
Mehr-Link: Nein

Jetzt fügen wir unter Contextual filters (Argumente, kontextuelle Filter) hinzu:
Inhalt: Autor uid

Dann wählen wir:

When the filter value is NOT available
  Provide default value
    User ID from URL
      Provide default value

Views contextual filters

Speichern Sie die View. Platzieren Sie den Block im gewünschten Bereich und besuchen Sie zum Beispiel die Seite user/1. Im erstellten Block werden alle Nodes des Benutzers mit uid = 1 angezeigt.

Ausgabe verwandter Nodes

Nun ein komplexeres Beispiel. Angenommen, wir wollen an eine Node mehrere andere Nodes anknüpfen. Dafür werden Felder vom Typ node reference verwendet. Um diese Verknüpfungsfelder nutzen zu können, benötigen wir das Modul References und dessen Untermodul node references.

http://drupal.org/project/references

Verknüpfungsfelder in Drupal 7 erlauben es, an eine Node mehrere Benutzer und mehrere Nodes gleichzeitig anzuhängen. Dies wird über Felder vom Typ node reference realisiert. Da in Drupal 7 Felder zu allen Entitäten hinzugefügt werden können, lassen sich nun auch beliebige Entitäten verknüpfen.

Auf meiner Website gibt es 4 News-Items, und ich möchte an den zweiten News-Artikel den ersten und dritten anhängen, zum Beispiel weil diese News thematisch ähnlich sind.

Wir gehen zur Verwaltung der Felder des Inhaltstyps News und fügen ein node reference Feld mit Autovervollständigung hinzu. Ich nenne das Feld „Ähnliche News“. Danach wählen wir, welche Inhaltstypen mit der Node verknüpft werden können, und stellen die Anzahl der auswählbaren Nodes für das Feld ein. Ich habe nur News ausgewählt. Dann speichern wir das Feld. Jetzt bearbeiten wir die zweite Node, dort ist das node reference Feld „Ähnliche News“.

Drupal reference field

Die News werden natürlich schon als Liste angezeigt, als verknüpft mit dieser Node. Unsere Aufgabe ist es, die View einzurichten.
Wir fügen eine neue View hinzu, wieder als Block.

Titel:
similar_news
Format:
Unformatted list | Einstellungen
Anzeigen: Felder | Einstellungen
Felder
Inhalt: Titel
Filterkriterien
Inhalt: Veröffentlicht (Ja)
Inhalt: Typ (= News)
Sortierkriterien
Inhalt: Postdatum (absteigend)
Paginator
Paginator verwenden: Angegebene Anzahl von Elementen anzeigen | 5 Stück

Wir fügen ein Argument (contextual filter) Inhalt: Nid hinzu. Dieses Mal wählen wir:

When the filter value is NOT available
  Provide default value
    Content ID from URL

Außerdem fügen wir unter Relationships (Beziehungen, Verknüpfungen) eine neue Beziehung hinzu: Inhalt: Ähnliche News (field_similar) (Wenn Ihr Feld anders heißt, wählen Sie dieses). Beachten Sie, dass es dort auch ein Feld mit der Bezeichnung „reverse“ gibt. Das bedeutet, dass es eine umgekehrte Beziehung gibt, also wenn wir auf der Seite der News 3 sind, wird im Block News 2 angezeigt (obwohl wir in News 2 die Verknüpfung zu News 1 und News 3 ausgewählt haben).

Als Ergebnis werden auch diese Felder ausgewählt:

Contextual filters
Inhalt: Nid
Relationships
Inhalt: Ähnliche News

In den Feldern für den Inhalt setzen wir die Beziehung, anstatt „Do not use a relationship“ wählen Sie den Namen unserer Beziehung.
Felder
(field_similar) Inhalt: Titel

Speichern Sie die View und fügen Sie den Block in den gewünschten Bereich ein.

Nun werden auf der Seite der News 2 im separaten Block die ähnlichen News News 1 und News 3 angezeigt.