logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

Views contextuele filters, relaties – argumenten en koppelingen

15/10/2025, by Ivan

In deze les besteed ik speciale aandacht aan het werken met argumenten in Views. Argumenten zijn delen van een URL, bijvoorbeeld:

node/15
Het eerste argument is node, het tweede is 15.
taxonomy/term/10
Het eerste argument is taxonomy, het tweede term, het derde 10.
user/67
Het eerste argument is user, het tweede 67

Ik denk dat deze voorbeelden duidelijk genoeg zijn en geen verdere uitleg vereisen.

Argumenten kunnen worden opgehaald met behulp van de functie arg()

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

Als de URL node/15 was, zal het volgende worden weergegeven:

node
15

De nummering van argumenten in de functie arg begint bij 0. Laten we nu bekijken welke kant-en-klare oplossingen er beschikbaar zijn in de module Views.

Weergave van nodes van een gebruiker

Stel dat we ons op de pagina user/1 bevinden en we willen een blok tonen met nodes van de gebruiker met uid = 1. Hiervoor gebruiken we een argument uit de URL.

Voeg een nieuwe view toe. We maken een blokweergave, geven in de velden de titel van de node aan, tonen alleen gepubliceerde nodes en sorteren op publicatiedatum.

Titel
Titel: user_nodes
Formaat
Formaat: Ongestructureerde lijst | Instellingen
Weergeven: Velden | Instellingen
Velden
Inhoud: Titel
Filtercriteria
Inhoud: Gepubliceerd (Ja)
Sorteercriteria
Inhoud: Publicatiedatum (aflopend)
Paginering
Paginering gebruiken: Geef een gespecificeerd aantal items weer | 15 items
Meer link: Nee

Klik nu op “Toevoegen” in Contextual filters (argumenten, contextuele filters). Kies:
Inhoud: Auteur uid

En vervolgens selecteer je:

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

Views contextual filters

Sla de view op. Plaats het blok in de gewenste regio en bezoek bijvoorbeeld de pagina user/1 — in het blok dat we hebben aangemaakt, worden nu alle nodes weergegeven die behoren tot gebruiker met uid = 1.

Weergave van gerelateerde nodes

Laten we het voorbeeld nu iets complexer maken. Stel dat we meerdere andere nodes aan één node willen koppelen. Hiervoor worden node reference-velden gebruikt. Om deze relaties te gebruiken, hebben we de module References en de submodule Node references nodig.

http://drupal.org/project/references

Relatievelden in Drupal 7 maken het mogelijk om meerdere gebruikers en meerdere nodes tegelijk aan één node te koppelen. Dit wordt gerealiseerd met velden van het type node reference. En aangezien Drupal 7 het mogelijk maakt om velden toe te voegen aan elke entiteit, kunnen we nu alle soorten entiteiten met elkaar verbinden.

Op mijn site heb ik vier nieuwsitems, en ik wil aan het tweede nieuwsitem het eerste en derde nieuwsitem koppelen, bijvoorbeeld omdat ze over een vergelijkbaar onderwerp gaan.

Ga naar het veldbeheer van het inhoudstype “Nieuws” en voeg een node reference-veld toe met de optie voor automatisch aanvullen. Noem het veld “vergelijkbare nieuwsitems”. Vervolgens selecteer je welke inhoudstypen met de node mogen worden gekoppeld en stel je in hoeveel nodes kunnen worden geselecteerd. Ik heb alleen “Nieuws” geselecteerd. Klik daarna op “Veld opslaan”. Ga nu naar de bewerkingspagina van het tweede nieuwsitem. Daar zie je het veld “Vergelijkbare nieuwsitems”.

Drupal reference field

Natuurlijk worden de gekoppelde nieuwsitems al weergegeven als een lijst die aan deze node is verbonden. Maar ons doel is om dit via een View te tonen.
Voeg een nieuwe view toe, opnieuw in de vorm van een blok.

Titel:
similar_news
Formaat:
Ongestructureerde lijst | Instellingen
Weergeven: Velden | Instellingen
Velden
Inhoud: Titel
Filtercriteria
Inhoud: Gepubliceerd (Ja)
Inhoud: Type (= Nieuws)
Sorteercriteria
Inhoud: Publicatiedatum (aflopend)
Paginering
Gebruik paginering: Geef een gespecificeerd aantal items weer | 5 items

Voeg een argument (contextuele filter) toe: Inhoud: Nid. Maar deze keer selecteren we:

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

Voeg vervolgens bij Relationships (relaties, koppelingen) een nieuwe relatie toe: Inhoud: Vergelijkbare nieuwsitems (field_similar). (Als jouw veld anders heet, selecteer dat veld.) Let er ook op dat er hetzelfde veld is met het label reverse. Dit betekent dat de relatie omgekeerd wordt — als we bijvoorbeeld op de pagina van nieuwsitem 3 staan, wordt in het blok nieuwsitem 2 weergegeven (zelfs als we oorspronkelijk in nieuwsitem 2 de relatie met nieuwsitem 1 en 3 hebben ingesteld).

Als resultaat worden de volgende instellingen toegepast:

Contextuele filters
Inhoud: Nid
Relaties
Inhoud: Vergelijkbare nieuwsitems

In het veld “Inhoud” moeten we nu de relatie instellen. In plaats van “Do not use a relationship” kies je de naam van onze relatie.
Velden
(field_similar) Inhoud: Titel

Sla onze view op en plaats het blok in de gewenste regio.

Nu zullen op de pagina van nieuwsitem 2, in een apart blok, de vergelijkbare nieuwsitems 1 en 3 worden weergegeven.