Soumission (Submit) du formulaire de configuration du bloc
Ajoutez la méthode suivante dans la classe HelloBlock. Dans cet exemple, elle se trouve dans le fichier src/Plugin/Block/HelloBlock.php, mais, à mesure que vous pensez en mode plus orienté objet, l’emplacement physique dans la structure des fichiers est moins important que l’espace de noms. Si vous êtes un programmeur OO très rigoureux, vous maintenez ces deux éléments bien alignés. Mais dans tous les cas, c’est en fait l’espace de noms — très proche du nom du dossier du module et du nom machine que nous avons évoqué plus tôt dans cette section — qui sera important plus tard lorsque vous voudrez interagir programmatiquement avec le code de votre module.
/** * {@inheritdoc} */ public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name'); }
Si vous avez un fieldset qui enveloppe les éléments du formulaire, vous devriez passer un tableau à la fonction getValue() au lieu de passer uniquement le nom du champ. Ici, myfieldset est le groupe de champs qui entoure le champ hello_block_name.
$this->configuration['hello_block_name'] = $form_state->getValue(['myfieldset', 'hello_block_name']);
L’ajout de ce code signifie que le formulaire sera traité et les données saisies seront sauvegardées dans la configuration pour cette instance du bloc, indépendamment des autres instances. Cependant, le bloc n’utilise pas encore les résultats de cette configuration modifiée. Cela sera abordé dans la page suivante du livre.