
In eerdere artikelen hebben we gezien hoe het veldtype Link werkt: Storage, Widget, Formatter. In dit artikel gaan we ons eigen veldtype maken voor het weergeven van een YouTube-video op een pagina, met twee verschillende weergaveformaten en instellingen.
Dit artikel richt zich op de Fields API, en als je gewoon een YouTube-videoveld aan je site wilt toevoegen, kun je beter de kant-en-klare module gebruiken:


Het is heel gebruikelijk om dit uit te voeren bij het ontwikkelen van Drupal-modules. Je moet waar mogelijk entityQuery gebruiken, maar soms is het nodig om een SQL-query te gebruiken om complexere gegevens op te halen.
Je kunt deze pagina aan je bladwijzers toevoegen om altijd een handige referentie bij de hand te hebben over hoe je MySQL-query’s select, insert, update en delete uitvoert in Drupal.
Select
Een enkele waarde ophalen:


In dit artikel bekijken we Field Formatters, die ons in staat stellen de weergave van velden aan te passen en deze op de pagina weer te geven.
In eerdere artikelen hebben we een veldtype Link gemaakt. In dit artikel onderzoeken we hoe deze velden op de pagina worden weergegeven en welke klasse daarvoor verantwoordelijk is. Elk veld dat je via Drupal toevoegt, kan op de pagina worden getoond en zijn weergave-instellingen kunnen worden aangepast via de pagina Manage display (Weergave beheren).


Het eventsysteem in Drupal maakt het mogelijk om complexere systemen te bouwen, waarbij functionaliteit kan worden aangepast met eigen code die reageert op specifieke gebeurtenissen. Veel hooks uit Drupal 7 zijn vervangen door events. Dit heeft gezorgd voor een uniformere manier van werken binnen Drupal en in uitbreidingsmodules. Het eventsysteem is afkomstig uit Symfony en bestaat uit de volgende onderdelen:


In eerdere artikelen zijn we al in aanraking gekomen met hooks. In dit artikel bekijken we uitgebreider de hooks die helpen bij het werken met entiteiten.
In dit artikel kun je in het algemeen lezen wat hooks zijn en waarom ze nodig zijn:
http://drupalbook.org/drupal/92-what-hook-drupal-8
We zullen hooks gebruiken om aangepaste code toe te voegen die wordt uitgevoerd bij bepaalde gebeurtenissen die met entiteiten te maken hebben: toevoegen, verwijderen, bijwerken.


Werken met entiteiten in Drupal is gestandaardiseerd, en alle CRUD-bewerkingen (Create, Read, Update, Delete) verlopen op dezelfde manier voor alle entiteitstypen. In dit artikel bekijken we hoe we met entiteiten kunnen werken in aangepaste code.
Laten we beginnen met eenvoudige voorbeelden.


Het ophalen van veldwaarden in entiteiten is vrij eenvoudig, maar er zijn meerdere manieren om dit te doen. Laten we bekijken wat de beste manier is om met veldwaarden te werken in aangepaste code. De meest recente informatie over het werken met velden vind je altijd op de officiële website:
https://www.drupal.org/docs/8/api/entity-api/working-with-the-entity-api
In dit artikel bekijken we voorbeelden van hoe je met waarden kunt werken.


We hebben al kennisgemaakt met de Form API en de Fields API en we weten hoe gegevens in Drupal in de database terechtkomen. Laten we nu kijken naar de basis van alle Drupal-sites: de Entity API.


Relaties zijn een zeer belangrijk onderdeel van Drupal — hierdoor worden taxonomietermen en inhoud, gebruikers en inhoud, producten en de weergave van producten in Commerce met elkaar verbonden. Dankzij dit systeem kunnen we bijvoorbeeld gebruikersvelden weergeven bij het tonen van inhoudsvelden, en bij het weergeven van producten kunnen we hun prijs en artikelnummer tonen.
Dankzij deze relaties kunnen we gebruikersvelden weergeven wanneer we inhoudsvelden tonen, en bij producten hun prijs en artikelnummer weergeven.


Gebruikers – dit is een van de belangrijkste functies van Drupal. We kunnen gebruikers aanmaken en verwijderen. Gebruikers op de site laten reacties, beoordelingen en inhoud achter. Drupal beschikt over systemen voor gebruikersmoderatie. En dit is slechts een deel van de functionaliteit van Drupal, dus we moeten de beheerinterface begrijpen om dit alles te kunnen beheren.
Laten we naar de Accountinstellingen gaan:
