Om in views te kunnen selecteren op een naam in plaats van een ID moet er een relatie worden gelegd tussen de entiteit die we laten zien en de andere entiteit, zoals een taxonomieterm. Dat is bijvoorbeeld gedaan in de overzichten van boeken. Het is simpel een overzicht te maken van alle leesboeken in tabelvorm of als een lijst of aan de hand van velden die velden die in in het inhoudstype boek voorkomen.
Het probleem ontstaat als je de schrijver ook op alfabetische volgorde van naam moet worden weergegeven. Als je dat probeert, krijg je de schrijver op volgorde van ID en dat is het nummer dat de schrijver heeft in de taxonomieterm. Maar je wilt de naam en die zit niet in de entiteit boek maar in de taxonomieterm.
Daarom moet er eerst een relatie gelegd worden tussen boek en taxonomie schrijver. Dat doe je met RELATIES onder het kopje UITGEBREID rechts in de viewsmaker. Dan kun je bij de filtercriteria een naam opgeven van de schrijver in plaats van zijn ID uit de taxonomie.
Een probleem ontstaat ook nog als je niet begint met de weergave van velden maar met de weergave van inhoud. In die view zie je onder de kop VELDEN in de views niet (field_schrijver: Taxonomieterm) Taxonomieterm: Naam staan. Dus eerst neem je de Veldenversie en dan is de relatie gelegd en dan kun je in de Inhoudversie ook de relatie gebruiken. Dan zie je onder de kop velden niet (field_schrijver: Taxonomieterm) Taxonomieterm: Naam, maar onder de motorkap zit het er wel.
Dit probleem jad ik ook met de boeken-schrijversrelatie voor het selectiemenu rechts. Ik had het goed staan en toen verdween de tekst toch weer. Hoe, weet ik niet maar de oplossing zat in de relaties
In Drupal Views bepalen de Velden (Fields) wat de rijen van uw resultaten zijn. Omdat deze View (schrijversblok) is ingesteld om Boeken op te halen, kijkt Drupal puur naar de databasevelden van het boek (zoals de Boektitel).
De reden dat de variabelen voor het geboortejaar en de geboorteplaats blanco blijven, is dat deze velden niet op het Boek zelf staan, maar op de Schrijver (de taxonomieterm). Omdat een Boek een losse database-entiteit is, kan Drupal de gegevens van de gekoppelde schrijver niet zomaar "lezen" of omzetten in een bruikbare variabele. De tokens blijven daardoor voor de computer 100% leeg.
Oplossen door de twee werelden in de View met elkaar te verbinden. Volg deze stappen om de variabelen direct werkend te krijgen:
Stap 1: Leg de database-relatie naar de Schrijver
Zolang de View de schrijversgegevens niet actief ophaalt uit de database, blijven de tokens leeg. We moeten een zogenaamde Relatie leggen:
- Bewerk de View
schrijversblok. - Klik in de rechterkolom op het kopje
Geavanceerd(Advanced) om dit uit te klappen. - Klik achter de optie
Relaties(Relationships) op Toevoegen. - Zoek in de lijst naar het taxonomieveld waarmee uw boeken aan de schrijvers zijn gekoppeld (bijvoorbeeld:
Inhoud: Schrijverof Referenced taxonomy term). - Vink dit veld aan en klik onderaan op Toepassen. (U kunt de instellingen in de pop-up gewoon op de standaardwaarden laten staan).
Stap 2: Koppel de velden aan deze Relatie
Nu de database-relatie actief is, moeten we uw uitgesloten velden (geboortejaar, geboorteplaats) vertellen dat ze hun data via deze nieuwe relatie moeten ophalen.
- Klik in de linkerkolom onder Velden op uw veld Geboortejaar.
- Helemaal bovenaan in de pop-up ziet u nu een nieuw dropdown-menu staan genaamd
Relatie(Relationship). - Selecteer in die dropdown de relatie die u zojuist in Stap 1 heeft aangemaakt.
- Klik onderaan op Toepassen.
- Herhaal deze stappen (de relatie selecteren) voor Geboorteplaats en Website.robleem