[AMELIORATION] FormBuilder + PullDown Menu + option_value

Support en français pour CMS Made Simple.

Moderator: jce76350

Post Reply
Feel
New Member
New Member
Posts: 4
Joined: Sat Mar 28, 2009 11:02 am

[AMELIORATION] FormBuilder + PullDown Menu + option_value

Post by Feel »

Bonjour à tous,
Toujours en bagarre avec mes PullDown menus  ;D après avoir trouvé un moyen de les précharger il m'a fallu trouver un moyen de forcer les valeurs des options.
La classe PullDownField de FormBuilder séquence de manière arbitraire (1, 2, 3, ...) les valeurs des options. C'est bien, mais insuffisant pour mes besoins.
J'ai donc trouvé sur les fora anglophones cette petite astuce pour charger les bonnes "valeur soumise" du formulaire.

Il faut modifier dans le programme PullDownField.class.php (modules\FormBuilder\classes\) la fonction GetFieldInput.

Code original :

Code: Select all

$subjects = &$this->GetOptionRef('option_name');
if (count($subjects) > 1) {
  for($i=0;$i<count($subjects);$i++) {
    $sorted[$subjects[$i]]=($i+1);
  }
  if( $this->GetOption('sort') == '1' ) {
    ksort($sorted);
  }
} else {
   $sorted[$subjects] = '1';
}
par  :

Code: Select all

$subjects = &$this->GetOptionRef('option_name');
$subjects_val = &$this->GetOptionRef('option_value'); // Récupération des valeurs d'option
if (count($subjects) > 1 && is_array($subjects)) { // plusieurs options différentes, on traite le tableau
  for($i=0;$i<count($subjects);$i++) {
    if (isset($subjects_val[$i] && !empty($subjects_val[$i])) { // une valeur est attachée à l'option, on la récupère
        $sorted{$subjects[$i]] = ($subjects_val[$i]); // création du couple option_value / option_name
    } else {
        $sorted[$subjects[$i]]=($subjects_val[$i]); // pas de valeur d'option, on affecte l'indice 'i' tout simplement
    }
  }
  if( $this->GetOption('sort') == '1' ) {
    ksort($sorted);
  }
} else { // cas où une seule entrée prévue dans le DropDown.
   $sorted[$subjects] = !empty($subjects_val)?$subjects_val:'1';
}
Cette façon de faire insérera dans la value de la balise option la valeur que vous aurez renseignée en créant votre formulaire.

@++
Philippe
Last edited by Feel on Tue Mar 31, 2009 11:58 am, edited 1 time in total.
Post Reply

Return to “French - Français”