Drupal 7 - Form API - #states sur champ checkbox

Posté le Mercredi 7 octobre 2015 - 20:32
Dernière mise à jour le Vendredi 26 janvier 2018 - 18:35

Exemple issu d'un patch que j'ai soumis pour le module twitter_post :

  $form['twitter_post_add_tracking_code'] = array(
    '#type' => 'checkbox',
    '#title' => t('Add tracking code'),
    '#default_value' => variable_get('twitter_post_add_tracking_code', 0),
  );
  //Le champ qui suit ne sera visible que si le champs précédant est coché
  //cela grâce à l'option #states
  $form['twitter_post_add_tracking_code_utm_medium'] = array(
    '#type' => 'textfield',
    '#title' => t('Campaign Medium  (utm_medium)'),
    '#maxlength' => 140,
    '#default_value' => variable_get('twitter_post_add_tracking_code_utm_medium', ''),
    '#states' => array(
      //À noter, le required ne fera qu'ajouter une asterisque rouge, aucun test ne sera
      //effectué côté serveur. (merci @DuaelFr)
      'required' => array(
        ':input[name="twitter_post_add_tracking_code"]' => array('checked'=>true)
      ),
      'visible' => array(
        ':input[name="twitter_post_add_tracking_code"]' => array('checked'=>true)
      ),
    ),
  );

 

 

Ajouter un commentaire

Ne sera pas publié

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.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...