PEAR logo

HTML_QuickForm_advmultiselect : La Référence



Nom

HTML_QuickForm_advmultiselect::setButtonAttributes - Définir les caractéristiques des boutons

Synopsis

      require_once 'HTML/QuickForm/advmultiselect.php';
     
void HTML_QuickForm_advmultiselect::setButtonAttributes( $button,
$attributes = NULL);
string $button;
mixed $attributes = NULL;

Description

Les définitions standards proposent de simples boutons texte. Vous pouvez changer la présentation avec des CSS si vous renseigner l'attribut class dans le second paramètre $attributes. Voir l'exemple.

Seulement cinq attributs peuvent être utilisés, les voici :

name

Le nom du bouton au sein du formulaire. Les défauts sont: 'add', ou 'remove', ou 'all', ou 'none', ou 'toggle', ou 'up', ou 'down'.

value

Le libellé des boutons type text. Les défauts sont: ' >> ', ou ' << ', ou ' Select All ', ou ' Select None ', ou ' Toggle Selection ', ou ' Up ', ou ' Down '.

type

Le type de bouton. Le défaut est 'button' (peut être aussi bien 'button' que 'image').

class

Un identificateur de classe CSS dans une de vos feuilles de styles.

src

L'URL de l'image utilisée.

Paramètres

string $button

Identificateur du bouton, soit 'add', 'remove', 'all', 'none', 'toggle', 'moveup' ou 'movedown'

mixed $attributes

(facultatif) Soit une chaîne de caractère clef=valeur, soit un tableau associatif de couple(s) clef=valeur, correspondant à des attributs HTML.

Valeurs renvoyées

Tableau 8.1. Valeurs PEAR_Error possibles

Message d'erreur Raison Solution
Argument 1 of advmultiselect::setButtonAttributes is not a string Vous avez fourni autre chose qu'une chaîne de caractère Vérifier le type de valeur de l'argument $button
Argument 1 of advmultiselect::setButtonAttributes has unexpected value Vous avez essayé de donner un type de bouton inconnu Vérifier la valeur de l'argument $button

Note

depuis la version 0.4.0

Cette fonction ne peut pas être appelée de façon statique.

Exemple

Dans cet exemple, les boutons 'add' et 'remove' ont une présentation définie par la classe css 'inputCommand'.

  1. <?php
  2. require_once 'HTML/QuickForm.php';
  3. require_once 'HTML/QuickForm/advmultiselect.php';
  4.  
  5. $form = new HTML_QuickForm('ams');
  6. $form->removeAttribute('name');        // XHTML compliance
  7.  
  8. $fruit_array = array(
  9.     'apple'     =>  'Apple',
  10.     'orange'    =>  'Orange',
  11.     'pear'      =>  'Pear',
  12.     'banana'    =>  'Banana',
  13.     'cherry'    =>  'Cherry',
  14.     'kiwi'      =>  'Kiwi',
  15.     'lemon'     =>  'Lemon',
  16.     'lime'      =>  'Lime',
  17.     'tangerine' =>  'Tangerine',
  18. );
  19.  
  20. // rendering with QF renderer engine and template system
  21. $form->addElement('header', null, 'Advanced Multiple Select: custom layout ');
  22.  
  23. $ams =& $form->addElement('advmultiselect', 'fruit', null, $fruit_array);
  24.  
  25. $ams->setLabel(array('Fruit:', 'Available', 'Selected'));
  26. $ams->setButtonAttributes('add',    array('value' => 'Add >>',
  27.                                           'class' => 'inputCommand'
  28. ));
  29. $ams->setButtonAttributes('remove', array('value' => '<< Remove',
  30.                                           'class' => 'inputCommand'
  31. ));
  32. $template = '
  33. <table{class}>
  34. <!-- BEGIN label_2 --><tr><th align="center">{label_2}</th><!-- END label_2 -->
  35. <!-- BEGIN label_3 --><th align="center">{label_3}</th></tr><!-- END label_3 -->
  36. <tr>
  37.   <td>{unselected}</td>
  38.   <td>{selected}</td>
  39. </tr>
  40. <tr>
  41.   <td>{add}</td>
  42.   <td>{remove}</td>
  43. </tr>
  44. </table>';
  45. $ams->setElementTemplate($template);
  46.  
  47. if (isset($_POST['fruit'])) {
  48.     $form->setDefaults(array('fruit' => $_POST['fruit']));
  49. }
  50.  
  51. $form->addElement('submit', 'send', 'Send');
  52. ?>
  53. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  54.     "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  55. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  56. <head>
  57. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  58. <title>HTML_QuickForm::advMultiSelect example </title>
  59. <style type="text/css">
  60. <!--
  61. body {
  62.   background-color: #FFF;
  63.   font-family: Verdana, Arial, helvetica;
  64.   font-size: 10pt;
  65. }
  66.  
  67. .inputCommand {
  68.     background-color: #d0d0d0;
  69.     border: 1px solid #7B7B88;
  70.     width: 7em;
  71.     margin-bottom: 2px;
  72. }
  73. // -->
  74. </style>
  75. <?php echo $ams->getElementJs(false); ?>
  76. </head>
  77. <body>
  78. <?php
  79. if ($form->validate()) {
  80.     $clean = $form->getSubmitValues();
  81.  
  82.     echo '<pre>';
  83.     print_r($clean);
  84.     echo '</pre>';
  85. }
  86. $form->display();
  87. ?>
  88. </body>
  89. </html>

Vous pouvez utiliser des images en lieu et place des boutons standards. Remplacer les lignes :

  1. $ams->setButtonAttributes('add',    array('value' => 'Add >>',
  2.                                           'class' => 'inputCommand'
  3. ));
  4. $ams->setButtonAttributes('remove', array('value' => '<< Remove',
  5.                                           'class' => 'inputCommand'
  6. ));

par des lignes telles que :

  1. $ams->setButtonAttributes('add',    array('type' => 'image',
  2.                                           'src'  => '/img/add.png'
  3. ));
  4. $ams->setButtonAttributes('remove', array('type' => 'image',
  5.                                           'src'  => '/img/remove.png'
  6. ));
HTML_QuickForm_advmultiselect : La Référence v 1.4.0 : 9 Juin 2007