web-dev-qa-db-fra.com

Comment ajouter la case à cocher "Accepter les conditions" au format Drupal 8

J'ai essayé plusieurs solutions à partir du champ de case à cocher booléen dans le formulaire de contact Drupal 8 pour cette réponse , cette réponse et même - ce module mais aucun ne fonctionne pour moi.

Fondamentalement, je veux simplement afficher une case à cocher qui affiche le texte, "J'accepte les termes et conditions de ce site", et les mots "termes et conditions" doivent être liés à sa page respective sur le site - pour ouvrir dans un nouvel onglet.

Toutes les idées sur la façon dont cela pourrait être réalisé dans Drupal 8, via du code ou même un module sont grandement appréciées

Ceci est le code que j'ai essayé d'utiliser dans le fichier .theme

function <theme_name>_form_alter(&$form, $form_state, $form_id) {
  switch ($form_id) {
    case 'field_config_edit_form':
      $form['default_value']['widget'][1] = array(
        '#type' => 'checkbox',
        '#title' => t('Your checkbox'),
        '#size' => 10,
        '#maxlength' => 255,
        '#default_value' => 1,
        '#required' => TRUE,
        '#description' => '<p>' . t('Your checkbox altered.') . '</p>',
    );
    break;
  }
}

Et j'ai besoin que cela soit fait sur tous les formulaires de contact du site

2
Yoosuf

Votre code était D7 et que doit faire case à cocher avec #size et #maxlength? :)

Cette réponse suppose que le sous-module Devel Kint est installé.

/**
 * Implements hook_form_alter().
 */
function THEME_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  ksm($form_id); // Remove when done.

  if ($form_id == 'MY_FORM_ID') {

    $form['tos'] = [
      '#type'          => 'checkbox',
      '#title'         => t('Terms and Conditions'),
      '#required'      => TRUE,
      '#default_value' => TRUE,
    ];
  }
}

Découvrez ceci Introduction à Form API .

1
leymannx