web-dev-qa-db-fra.com

Texte personnalisé / html dans le module de formulaire personnalisé

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?

7
PolGraphic

#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 markup puis utilisation #markup pour créer un élément qui n'est que du HTML ( voir la réponse de ya.teck ).

7
Will

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.');
17
ya.teck

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',

];
0
Yusef