9.10.4. Drupal 8 Fields API. Drupal Formatter – gegevens op de pagina weergeven
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).
In de kolom Format kun je kiezen hoe het veld wordt weergegeven. Deze kolom wordt gegenereerd dankzij de Field Formatter-klassen. Laten we een kijkje nemen naar de klasse uit de module Link, die verantwoordelijk is voor het weergeven van een link op de pagina:
core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php
In de annotatie van de klasse staat aangegeven tot welk veldtype deze formatter behoort:
/**
* Plugin implementation of the 'link' formatter.
*
* @FieldFormatter(
* id = "link",
* label = @Translation("Link"),
* field_types = {
* "link"
* }
* )
*/
In dit bestand is vooral de methode viewElements() interessant — deze is verantwoordelijk voor het weergeven van de gegevens op de pagina. Let op dat de formatter geen databasequery’s uitvoert, maar de gegevens haalt uit de variabele $items
. In $items
zitten de waarden van het veld die eerder door het systeem zijn opgehaald.