logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

9.10.1. Drupal Fields API. Field Widget: gegevensinvoervelden, formulier voor het veld.

17/10/2025, by Ivan

Menu

In deze tutorial bekijken we hoe de Field Widget van de Link-module werkt. Dit is een overzichtsartikel, dus als je wilt beginnen met het schrijven van je eigen Field Widget, sla dan de volgende artikelen over.

In de vorige les hebben we Link-velden toegevoegd voor knooppunten en blokken. Laten we nu kijken naar hoe het formulier voor het Link-veld wordt gevormd.

We hebben al kennisgemaakt met autoloading van PHP-klassen in Drupal, en er is ook een WidgetBase-veldwidgetklasse voor velden:

core/lib/Drupal/Core/Field/WidgetBase.php

Door een nieuwe child-klasse in de module te maken en deze in de src/Plugin/Field/FieldWidget te plaatsen, wordt de klasse automatisch gekoppeld en kan deze voor het veld worden gebruikt. Laten we de widgetklasse voor het Link-veld bekijken:

core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php

De annotatie van de klasse bevat het veldtype waarvoor deze widget gebruikt kan worden:

/**
 * Plugin implementatie van de 'link' widget.
 *
 * @FieldWidget(
 *   id = "link_default",
 *   label = @Translation("Link"),
 *   field_types = {
 *     "link"
 *   }
 * )
 */

Op deze manier kun je nieuwe veldwidgets toevoegen aan de aangepaste module voor bestaande velden.

Laten we nu verder gaan met de methode formElement(), waarschijnlijk een van de belangrijkste widgetmethoden, waar formulier elementen worden toegevoegd via de Form API. Er zijn drie elementen in de Link-widget:

$element['title']
$element['uri']
$element['attributes']
Deze velden worden vervolgens gebruikt om gegevens in te voeren op een knooppunt- of blokformulier. Validatie wordt ook toegevoegd aan de velden omdat, bijvoorbeeld, het URI-veld het juiste URL of het lokale siteadres moet bevatten.

Een andere belangrijke methode is settingsForm(), deze is verantwoordelijk voor de formulierinstellingen die je kunt zien op de pagina Beheer formulier:

link

Alle andere methoden in de Field Widget zijn optioneel. We zullen niet dieper ingaan op elke methode omdat ze niet noodzakelijk worden gebruikt om aangepaste modules te schrijven. Als je modules voor bijdragers schrijft, denk ik niet dat het moeilijk voor je zal zijn om de beschrijving van de ouderklasse-methoden te lezen:

core/lib/Drupal/Core/Field/WidgetBase.php

Alle Field Widgets voor velden worden geconfigureerd op het tabblad Beheer formulierweergave voor elke bundelentiteit afzonderlijk:

manage form display