Referentievelden en contextuele filters

Een referentieveld in een inhoudstype toont voor een bepaalde node de links naar de andere nodes of taxonomietermen. Als je bij een film de acteurs/actrices invult kom je zo op de inhoud van deze personen terecht.
Het omgekeerde is moeilijker. Wat als je dan de films wilt tonen waar de acteur in meespeelt?Je zou in het inhoudstype een referentieveld kunnen plaatsen naar films, maar dan heb je dubbele input. Dit is niet de Drupal way ...
Laat ons eerst het inhoudstype van de films bekijken. Je ziet duidelijk een referentieveld naar de acteurs.
Het is een node referentie.
Bij de film 'Cleopatra' zie je dan bvb dit:
Elizabeth Taylor heeft in veel films meegespeeld natuurlijk. Haar naam komt zo veelvuldig voor in de nodes van de films. Om de omgekeerde beweging te maken.. toon alle films van een bepaalde acteur moeten we een eerst view maken. Het is een oplijsting van alle films et de bijhorende acteurs.
We krijgen wel alle films die in onze Drupal zitten... Hoe gaan we nu bij het tonen van een node (acteur/actrice) enkel de films tonen waar ze in meegespeeld hebben? We gaan gebruik maken van een contextuele filter. Dit is een filter die in de URL voorkomt. Als je naar Elizabeth Taylor kijkt, dan kijk eigenlijk naar node 4 (in ons geval natuurlijk). Ik kan in de view duidelijk maken dat hij enkel de films moet tonen waar de acteur node 4 heeft. Bij uitgebreid zet de je instelling zo:
Niet schrikken als je dan geen enkele film meer ziet.. Om te testen kan je nu de node ID intype in het voorbeeldvenster. In ons geval (4) komen we bij Elizabeth Taylor terecht.
OK. Dit werkt al. Hoe krijgen we dit nu gekoppeld aan ons inhoudstype? Er zijn verschillende manieren. Ik kies voor het simpele EVA systeem ( zie EVA module). Hier zeg je aan welk inhoudstype je dit wilt koppelen.
Er verschijnt dan bij de Weergave van het inhoudstype een veld bij.
En ja hoor. Bij het bekijken van alle info over Elizabeth komt nu ook de gefilterde view met haar films tevoorschijn.
Contextuele filters worden veel gebruikt in Drupal. Ze zijn een onmisbare tool om relatievelden maar één keer te moeten invullen.