Form API snippet

La Form API Drupal permet de générer des formulaires sous forme de tableau PHP. Vous n’avez pas à coder vos éléments directement en HTML. Cette API très puissante permet de réaliser des formulaires complexes et sur mesure.

Désactiver un champ (ajouter l'attribut disabled)

TRUE : l'élément est affiché mais n'accepte pas les entrées de l'utilisateur.

$form['lorem'] = array(
    '#type' => 'textfield',
    '#disabled' => TRUE,
 );

Rendre un champ obligatoire

TRUE : Indique si une entrée est requise ou non sur l'élément. 

$form['lorem'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
);

Ajouter une valeur par défaut de l'élément. 

$form['lorem'] = array(
    '#type' => 'textfield',
    '#value' => 'lorem ipsum,
 );

Ajouter du js

$form['#attached']['library'][] = 'my_module/form_test';

Ajouter une class

$form['lorem'] = array(
    '#type' => 'textfield',
    '#attributes' => array(
        'class' => array('my_class my_class_2'),
    ),
 );

Ajouter un placeholder

$form['lorem'] = array(
    '#type' => 'textfield',
    '#attributes' => array(
           'placeholder' => 'lorem ipsum'
     ),
 )

HTML5

'#type' => 'tel'
'#type' => 'email'
'#type' => 'number'
'#type' => 'date'
'#type' => 'url'
'#type' => 'search'
'#type' => 'range'

Ajouter un wrapper 

$form['lorem'] = array(
    '#type' => 'textfield',
    '#wrapper_attributes' => ['class' => ['wrapper-input']],
 );

Redirection après validation du formulaire. 

Dans votre méthode "submitForm" écrivez ci-dessous le code.
"machine_name" est le nom  mentionné dans le fichier de routage.

$form_state->setRedirect('machine_name');
return;

Exemple, redirection vers la page d'accueil

$form_state->setRedirect('<front>');

Sélectionner tous les input type checkbox

$form['lorem'] = [
    '#type' => 'checkboxes',
    '#options' => $options,
     // coche toutes les checkbox
     '#attributes' => ['checked' => 'checked'],
];

Cocher par défaut un champ checkbox 

$form['lorem'] = [
    '#type' => 'checkbox',
    '#default_value' => '1',
 ];

Valeur par défaut d'un champ type select

$form['lorem'] = [
    '#type' => 'select',
    '#options' => [
        '1' => 'Hello',
        '2' => 'World!'
            ],
    '#default_value' => '2',
];

 

Ajouter un commentaire

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.