Je suis ce tutoriel et j'ai déjà créé mon formulaire personnalisé en tant que module Drupal 8).
Je me demande, comment ajouter du texte/html personnalisé dans un formulaire? Je veux dire quand quelqu'un va sur le chemin indiqué dans *.routing.yml
, Je voudrais afficher non seulement des champs de formulaire, mais aussi des intros html/text.
Je sais que le formulaire est ici:
public function buildForm(array $form, FormStateInterface $form_state) {
$form['name_surname'] = array(
'#type' => 'textfield',
'#title' => t('Name and surname:'),
'#required' => TRUE,
);
...
}
Mais je ne sais pas quel type d'entrée (ou #type
) dois-je insérer pour obtenir juste un bloc html/texte personnalisé entre les champs ou au-dessus de tous?
#field_prefix
#field_suffix
et #description
devrait faire l'affaire. Voici plus d'informations sur FormElement . Je pense que vous pouvez aussi définissez un élément pour taper utilisation markup
puis#markup
pour créer un élément qui n'est que du HTML ( voir la réponse de ya.teck ).
Quel type d'entrée (ou #type) dois-je insérer pour obtenir juste un bloc html/texte personnalisé entre les champs ou au-dessus de tous?
Item Le type d'élément fournit un élément de formulaire d'affichage uniquement avec un titre et une description facultatifs.
$form['help'] = [
'#type' => 'item',
'#title' => t('Block title'),
'#markup' => t('Block content'),
];
Vous pouvez également ajouter du contenu arbitraire aux tableaux de rendu à l'aide de la clé de tableau de rendu #markup comme suit.
$form['text']['#markup'] = t('Some text.');
Avec l'aide de markup
, vous pouvez ajouter des balises Html dans votre formulaire. Pour une instance:
$form['help'] = [
'#type' => 'markup',
'#markup' => '<a href="#">Find out more</a>',
'#weight' => '3',
];