1.7. Veld, Entiteit: werken met velden en entiteiten.
In Drupal zijn er geweldige modules — Fields en Field UI — die ons toelaten verschillende velden toe te voegen aan objecten (nodes, reacties, gebruikers, taxonomietermen), welke worden aangemaakt door de Entity-module. Met behulp van Entity + Fields kun je elke gewenste relatie tussen objecten uit de echte wereld op de site realiseren. Bijvoorbeeld: je hebt een bedrijf, dat bedrijf heeft verschillende afdelingen, en binnen die afdelingen zijn werknemers. Maak een taxonomiewoordenlijst “Afdelingen” aan en voeg daar alle afdelingen van het bedrijf aan toe, maak vervolgens een inhoudstype Werknemer en koppel er een veld aan.
Zo krijgen we niet alleen pagina’s van afdelingen en werknemers, maar een onderling verbonden catalogus. In deze les maken we zo’n directory van afdelingen en werknemers. Het belangrijkste om te begrijpen is dat Drupal het mogelijk maakt om snel het toevoegen van verschillende objecten op de site te configureren en relaties tussen deze objecten in te stellen.
Voordat we beginnen, controleer of de modules Entity, Field, Field UI en Taxonomy zijn ingeschakeld.
Laten we een taxonomiewoordenlijst aanmaken met de naam Afdelingen (we hebben al taxonomiewoordenlijsten aangemaakt in deze les):
Nu maken we het inhoudstype Werknemer aan (we hebben al geleerd hoe we een inhoudstype toevoegen in een eerdere les). Het titelveld kun je hernoemen naar Volledige naam:
Klik nu op Beheer velden:
Velden beheren
Op dit tabblad kunnen we velden toevoegen aan onze inhoudstypen (evenals aan andere entiteiten zoals reacties, gebruikers enz.). Laten we een koppeling toevoegen naar het woordenboek Afdelingen:
Elke werknemer heeft ook een functie, dus voegen we een veld Functie toe. Kies voor het veldtype Tekst, dit is een gewoon tekstveld.
We kunnen ook een veld Geboortedatum toevoegen (controleer of de module Datetime
is ingeschakeld):
Bij Type datum kies je het beste voor Alleen datum:
Hernoem het veld Body naar Over mij:
Hernoem het label:
We hebben nu verschillende velden toegevoegd voor elke werknemer (in de volgende les voegen we nog een fotoveld toe om een afbeelding van elke werknemer te uploaden). Op de pagina voor het toevoegen van werknemers zullen deze extra velden nu verschijnen.
Als je de volgorde van velden in het node-bewerkingsformulier wilt wijzigen, ga dan naar het tabblad Beheer formulierweergave.
Formulierweergave beheren
Op dit tabblad beheren we het formulier voor het toevoegen van een node. De volgorde waarin de informatie op de gepubliceerde pagina wordt weergegeven, wordt ingesteld op het tabblad Weergave beheren.
Weergave beheren
We kunnen de weergave van het veld Afdeling in de teaser verbergen, omdat op de teaserpagina van een afdeling sowieso alleen werknemers van die afdeling zullen verschijnen. Tegelijkertijd tonen we het veld Afdeling wel op de volledige node, zodat we kunnen terugkeren naar de afdelingspagina.
Daarnaast moeten we het formaat van de geboortedatum aanpassen zodat alleen de datum wordt weergegeven, zonder tijd. Klik hiervoor op het tandwiel en stel het gewenste datumformaat in:
Vergeet niet om na elke wijziging op te slaan. Hetzelfde moet worden gedaan voor de Standaardweergave (als we Volledige inhoud niet instellen, wordt de weergave van Default toegepast op de volledige node).
Nu kunnen we werknemers toevoegen.
Als je naar de bewerkingspagina van het woordenboek Afdelingen gaat, vind je daar ook tabbladen voor het beheren van de velden van de taxonomie van afdelingen.
Zo kun je velden toevoegen voor elke afdeling (bijvoorbeeld aantal werknemers, afdelingslogo, enz.).
Hetzelfde kun je doen voor sitegebruikers via de pagina Accountinstellingen:
/admin/config/people/accounts
Nu je weet dat je velden kunt toevoegen aan eender welk object, kun je zelf kiezen of je beter Taxonomy, Users of Nodes gebruikt. Bijvoorbeeld, in plaats van een taxonomiewoordenboek te gebruiken, kun je ook een inhoudstype Afdeling aanmaken en dit koppelen aan Werknemer met behulp van de module Entity Reference, die dergelijke verwijzingsvelden mogelijk maakt. Hiermee kun je relaties instellen tussen entiteiten via een Entity Reference-veld.
De mogelijkheid om velden toe te voegen in Drupal, in combinatie met de Views-module, biedt enorme mogelijkheden voor het bouwen van websites. Je kunt dus gerust doorgaan naar de volgende les, zelfs als nog niet alles volledig duidelijk is.