Datacollecties uitgelegd

Published: January 11, 2024

Datacollecties zijn een geweldige manier om soortgelijke data te organiseren, zoals FAQ-items, klantbeoordelingen, enz.

Wat is een datacollectie?

Een datacollectie, zoals de naam al doet vermoeden, is een verzameling van data. Dit kan van alles zijn, van FAQ-items en klantbeoordelingen tot medewerkers voor je 'Ons team'-pagina's. Zolang het data is die je op één pagina wilt verzamelen. Een blog gebruikt bijvoorbeeld geen datacollectie omdat blogartikelen meestal afzonderlijke pagina's zijn; de items binnen een datacollectie leveren geen daadwerkelijke pagina's op. Het is slechts een manier om soortgelijke data op een handige manier te organiseren. Je kunt zoveel datacollectie maken als je wilt en zoveel items toevoegen als je wilt. Elke datacollectie heeft zijn eigen set gegevens die nodig zijn voor de items. Bijvoorbeeld, een FAQ-datacollectie heeft misschien alleen een vraag- en antwoordveld nodig, terwijl een medewerkersdatacollectie mogelijk een naam, functietitel, favoriete citaat en een afbeelding bevat. Laten we dit voorbeeld gebruiken om dieper in te gaan op datacollecties.

Een datacollectie configureren

Wanneer je een datacollectie toevoegt en configureert, moet je inventariseren welke informatie je nodig hebt voor elk item binnen de datacollectie. In ons geval, wat willen we weten over onze medewerkers zodat we een cool overzicht van medewerkers op onze website kunnen maken? Nadat we weten wat we willen tonen, kunnen we de datacollectie configureren en elementen toevoegen. In ons geval voegen we vier elementen toe aan de datacollectie:

  • een TEKST-element genaamd 'naam'
  • een TEKST-element genaamd 'functie'
  • een TEKST-element genaamd 'favoriete quote'
  • een MEDIA-element genaamd 'afbeelding'

Nu we onze datacollectie hebben opgezet, kunnen we de 'overzicht'-schakelaar omzetten om aan te geven welke velden we willen zien in het medewerkersoverzicht in het CMS; dit heeft geen invloed op het gedrag van de datacollectie in je frontend-bestanden, waar we het zo over zullen hebben.

Nu we onze elementen hebben ingesteld, kunnen we enkele medewerkers toevoegen aan het CMS. Bij het toevoegen van een medewerker worden deze vier velden gevraagd om in te vullen.

Datacollectiedata op je website krijgen

Nu we onze medewerkersdatacollectie hebben opgezet en gevuld, is het tijd om onze medewerkerspagina te maken en data op te vragen uit het CMS. Een basisbegrip van het maken van pagina's is vereist; lees onze handleiding over hoe je je eerste pagina maakt als je nog niet bekend bent met de Webigniter-structuur.

Je kunt de medewerkers op veel manieren ophalen, maar voordat ik uitleg welke coole dingen je kunt doen, laat ik beginnen met een basisvoorbeeld van hoe je je medewerkers kunt ophalen (en doorlopen).

 
<?php foreach($webigniter->getDatacollectionEntries(name: 'Employees') as $employee):?>
   <h2><?=$employee['data']['name'];?></h2>
   <h3><?=$employee['data']['jobtitle'];?></h3>
   <p><?=$employee['data']['favourite-quote'];?></p>
   <img src='<?=$employee['data']['image']['link'];?>' alt='<?=$employee['data']['image']['link'];?>'>
<?php endforeach; ?>

Dit is de meest basale manier om de medewerkers op te halen; dit maakt gebruik van de getDatacollectionEntries() functie om alle items in de 'Employees'-datacollectie op te halen. In sommige gevallen is dit voldoende, maar er kunnen situaties zijn waarin je iets meer controle wilt hebben over hoe de data wordt opgehaald. Daar komen de optionele parameters van pas...

Dit zijn de optionele parameters voor de getDatacollectionEntries() functie:

  • unpublished: standaard false, stel in op true om ook niet-gepubliceerde items op te halen.
  • orderBy: naam van het datacollectieveld om de resultaten op te ordenen.
  • orderType: specificeer hoe je de resultaten wilt ordenen (toegestane waarden: ASC, DESC en RAND).
  • filterBy: namen van de datacollectievelden die je wilt gebruiken voor filtering (moet een array zijn, ['name', 'jobtitle'] bijvoorbeeld).
  • filterValue: specificeer de waarde die de gefilterde velden moeten bevatten (ook een array, ['john', 'mark'] bijvoorbeeld).
  • limit: specificeer het aantal resultaten dat je wilt tonen.

Als je bijvoorbeeld deze code gebruikt, krijg je een willekeurige lijst van 5 medewerkers waarvan de naam of het favoriete quote 'sky' bevat.

 
<?php foreach($webigniter->getDatacollectionEntries(name: 'Employees', orderType: 'RAND', filterBy: ['name', 'favourite-quote'], filterValue: ['sky'], limit: 5) as $employee):?>
   <h2><?=$employee['data']['name'];?></h2>
   <h3><?=$employee['data']['jobtitle'];?></h3>
   <p><?=$employee['data']['favourite-quote'];?></p>
   <img src='<?=$employee['data']['image']['link'];?>' alt='<?=$employee['data']['image']['alt'];?>'>
<?php endforeach; ?>

Zoals je kunt zien, zijn er eindeloze mogelijkheden om onze medewerkers op de pagina te tonen.

Conclusie

Dit voorbeeld was gebaseerd op medewerkers, maar omdat je de datacollectie met zijn elementen kunt configureren zoals je wilt, kun je het gebruiken om elke soort verzameling van data op te slaan. Wanneer de CMS-gebruiker deze data toevoegt, verwijdert of wijzigt, wordt dit direct op de website weergegeven, zonder dat een webontwikkelaar de pagina hoeft bij te werken.

De filteropties maken deze kernfunctie van Webigniter zeer nuttig voor allerlei soorten dataverzamelingen.

Klaar om te starten?
Webigniter zal je niet teleurstellen!