Configuratieformulier indienen in blok
Voeg de volgende methode toe aan de klasse HelloBlock
. In dit voorbeeld bevindt deze zich in het bestand src/Plugin/Block/HelloBlock.php
, maar naarmate je meer in een OOP-georiënteerde manier gaat denken, is de fysieke locatie in de bestandsstructuur minder belangrijk dan de namespace. Als je een ervaren OO-programmeur bent, houd je beide nauwkeurig op elkaar afgestemd. Voor de zekerheid: de namespace—die sterk lijkt op de mapnaam van de module en de machinenaam uit onze eerdere bespreking—zal later belangrijk zijn wanneer je programmatisch met de code van je module wilt werken.
/** * {@inheritdoc} */ public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name'); }
Als je een fieldset
-wrapper rond de formelementen hebt, moet je een array doorgeven aan de functie getValue()
in plaats van alleen de veldnaam. Hier is myfieldset
het fieldset dat het veld hello_block_name
bevat.
$this->configuration['hello_block_name'] = $form_state->getValue(['myfieldset', 'hello_block_name']);
Door deze code toe te voegen, wordt het formulier verwerkt en wordt de invoer van het formulier opgeslagen in de configuratie voor dit specifieke blokexemplaar, onafhankelijk van andere blokexemplaren. Het blok gebruikt echter nog steeds niet het bijgewerkte configuratieresultaat. Dat komt op de volgende pagina van het boek.