[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / module_specs / Zend_Form-StandardElements.xml
blob9ce54008962b290c9d8470ae2f393e79bcf80b6d
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- EN-Revision: 21996 -->
3 <!-- Reviewed: no -->
4 <sect1 id="zend.form.standardElements">
5     <title>Les éléments standards fournis avec Zend Framework</title>
6     <para>
7         Zend Framework est fournis avec des classes d'éléments couvrant la
8         plupart des éléments de formulaire HTML. La plupart spécifie un helper de
9         vue en particulier à utiliser pour décorer un élément, mais plusieurs
10         d'entre elles offrent des fonctionnalités supplémentaires. Ce qui suit est
11         une liste de toutes ces classes, ainsi que des descriptions des
12         fonctionnalités offertes.
13     </para>
14     <sect2 id="zend.form.standardElements.button">
15         <title>Zend_Form_Element_Button</title>
16         <para>
17             Utilisé pour créer des éléments boutons,
18             <classname>Zend_Form_Element_Button</classname> étend <link
19                 linkend="zend.form.standardElements.submit">Zend_Form_Element_Submit</link>,
20             spécifie quelques fonctionnalités personnalisées. Il spécifie le
21             helper de vue 'formButton' pour la décoration.
22         </para>
23         <para>
24             Comme l'élément submit, il utilise le label de l'élément en tant que
25             valeur de l'élément lors de l'affichage ; autrement dit, pour définir
26             le text du bouton, définissez la valeur de l'élément. Le label sera
27             traduit si l'adapteur de traduction est présent.
28         </para>
29         <para>
30             Comme le label est utilisé comme faisant partie de l'élément,
31             l'élément bouton utilise seulement <link
32                 linkend="zend.form.standardDecorators.viewHelper">ViewHelper</link>
33             et les décorateurs <link
34                 linkend="zend.form.standardDecorators.dtDdWrapper">DtDdWrapper</link>.
35         </para>
36         <para>
37             Après avoir rempli ou validé un formulaire, vous pouvez vérifier si
38             le bouton donné a été cliqué en utilisant la méthode
39             <methodname>isChecked()</methodname>.
40         </para>
41     </sect2>
42     <sect2 id="zend.form.standardElements.captcha">
43         <title>Zend_Form_Element_Captcha</title>
44         <para>
45             Les CAPTCHAs sont utilisé pour empêcher la soumission automatique des
46             formulaires par des bots et autre processus automatisés.
47         </para>
48         <para>
49             L'élément de formulaire Captcha permet de spécifier quel <link
50                 linkend="zend.captcha.adapters">Adapteur Zend_Captcha</link> vous
51                 désirez utiliser. Il définit ensuite cet adapteur comme
52                 validateur à l'objet, et utilise le décorateur du Captcha pour
53                 l'affichage (ce qui fait office de proxy vers l'adapteur CAPTCHA).
54         </para>
55         <para>
56             Les adapteurs peuvent être n'importe quel adapteur de
57             <classname>Zend_Captcha</classname>, ou n'importe quel adapteur que
58             vous avez défini par ailleurs. Pour permettre ceci, vous devrez passer
59             une clé supplémentaire de plugin loader, 'CAPTCHA'
60             ou 'captcha', lorsque vous spécifiez un prefixe de chemin de plugin loader :
61         </para>
62         <programlisting language="php"><![CDATA[
63 $element->addPrefixPath('My_Captcha', 'My/Captcha/', 'captcha');
64 ]]></programlisting>
65         <para>
66             Le Captcha peut ensuite être enregistré en utilisant la méthode
67             <methodname>setCaptcha()</methodname>, qui prend en paramètre soit
68             une instance concrête de CAPTCHA soit le nom court d'un adapteur CAPTCHA :
69         </para>
70         <programlisting language="php"><![CDATA[
71 // Instance concrête:
72 $element->setCaptcha(new Zend_Captcha_Figlet());
73 // Utilisation d'un nom court :
74 $element->setCaptcha('Dumb');
75 ]]></programlisting>
76         <para>
77             Si vous souhaitez charger votre élément via la configuration, spécifiez soit
78             la clé 'captcha' avec un tableau contenant la clé 'captcha', soit les clés
79             'captcha' et 'captchaOptions' :
80         </para>
81         <programlisting language="php"><![CDATA[
82 // Utilisation d'une clé captcha :
83 $element = new Zend_Form_Element_Captcha('foo', array(
84     'label' => "Merci de confirmer que vous êtes humain",
85     'captcha' => array(
86         'captcha' => 'Figlet',
87         'wordLen' => 6,
88         'timeout' => 300,
89     ),
90 ));
91 // Utilisation simultanée des clés captcha et captchaOption :
92 $element = new Zend_Form_Element_Captcha('foo', array(
93     'label' => "Merci de confirmer que vous êtes humain",
94     'captcha' => 'Figlet',
95     'captchaOptions' => array(
96         'captcha' => 'Figlet',
97         'wordLen' => 6,
98         'timeout' => 300,
99     ),
101 ]]></programlisting>
102         <para>
103             Le décorateur utilisé est déterminé lors de la récupération de l'adapteur
104             du captcha. Par défaut, le <link
105                 linkend="zend.form.standardDecorators.captcha"> décorateur
106                 du captcha</link> est utilisé, mais un adapteur peut spécifier un décorateur
107                 différent via sa méthode <methodname>getDecorator()</methodname>.
108         </para>
109         <para>
110             Comme noté, l'adapteur de captcha lui même agit comme un validateur pour
111             l'élément. De plus, le validateur NotEmpty n'est pas utilisé, et l'élément
112             est marqué comme requis. Dans la plupart des cas, vous n'aurez besoin de
113             rien d'autre pour que le captcha soit présent dans votre formulaire.
114         </para>
115     </sect2>
116     <sect2 id="zend.form.standardElements.checkbox">
117         <title>Zend_Form_Element_Checkbox</title>
118         <para>
119             Les cases à cocher HTML vous permettent de retourner une valeur spécifique,
120             mais elles fonctionnent essentiellement comme des booléens. Lorsque elle
121             est cochée, la valeur de la case à cocher est soumise. Lorsque la case à
122             cocher n'est pas cochée, rien n'est soumis. En interne,
123             <classname>Zend_Form_Element_Checkbox</classname> applique cet état.
124         </para>
125         <para>
126             Par défaut, la valeur cochée est '1', et la valeur non cochée est '0'.
127             Vous pouvez spécifier les valeurs en utilisant respectivement les accesseurs
128             <methodname>setCheckedValue()</methodname>
129             et <methodname>setUncheckedValue()</methodname>. En interne, à chaque fois que
130             vous définissez une valeur, si la valeur fournie correspond à la valeur cochée,
131             alors elle sera définie, mais toutes autres valeurs aura pour effet que la valeur
132             non cochée sera sélectionnée.
133         </para>
134         <para>
135             En sus, définir la valeur définit la propriété <code>checked</code>
136             de la case à cocher. Vous pouvez la récupérer en utilisant
137             <methodname>isChecked()</methodname> ou simplement en accédant à la propriété.
138             Utiliser la méthode <methodname>setChecked($flag)</methodname> l'état du flag
139             ainsi que la valeur cochée ou non cochée de l'élément.
140             Veillez à utiliser cette méthode lorsque vous définissez l'état coché d'un élément
141             case à cocher afin d'être sûr que la valeur est correctement définie.
142         </para>
143         <para>
144             <classname>Zend_Form_Element_Checkbox</classname> utilise le helper de vue
145             'formCheckbox'. La valeur cochée est toujours utilisé pour le remplir.
146         </para>
147     </sect2>
148     <sect2 id="zend.form.standardElements.file">
149         <title>Zend_Form_Element_File</title>
150         <para>
151             L'élément de formulaire File fournit un mécanisme pour fournir des champs
152             d'upload de fichier à votre formulaire. Il utilise <link
153                 linkend="zend.file.transfer.introduction">Zend_File_Transfer</link>
154             en interne pour fournir cette fonctionnalité et le helper de vue
155             <code>FormFile</code> ainsi que le décorateur <code>File</code>
156             pour afficher l'élément de formulaire.
157         </para>
158         <para>
159             Par défaut, il utilise l'adapteur de transfert<code>Http</code> qui
160             inspecte le tableau <varname>$_FILES</varname> et vous permet d'attacher
161             des validateurs et des filtres. Les validateurs et les filtres attachés
162             au formulaire sont à leur tour attachés à l'adapteur de transfert.
163         </para>
164         <example id="zend.form.standardElements.file.usage">
165             <title>Utilisation de l'élément de formulaire File</title>
166             <para>
167                 L'explication d'utilisation de l'élément de formulaire File ci-dessous
168                 peut sembler ésotérique, mais l'usage est en fait relativement trivial :
169             </para>
170             <programlisting language="php"><![CDATA[
171 $element = new Zend_Form_Element_File('foo');
172 $element->setLabel('Upload une image:')
173         ->setDestination('/var/www/upload');
174 // Fait en sorte qu'il y ait un seul fichier
175 $element->addValidator('Count', false, 1);
176 // limite à 100K
177 $element->addValidator('Size', false, 102400);
178 // seulement des JPEG, PNG, et GIFs
179 $element->addValidator('Extension', false, 'jpg,png,gif');
180 $form->addElement($element, 'foo');
181 ]]></programlisting>
182             <para>
183                 Vous devez aussi vous assurer que le type d'encodage correct est fourni au
184                 formulaire ; vous devez utiliser 'multipart/form-data'. Vous pouvez faire
185                 cela en définissant l'attribut 'enctype' du formulaire:
186             </para>
187             <programlisting language="php"><![CDATA[
188 $form->setAttrib('enctype', 'multipart/form-data');
189 ]]></programlisting>
190             <para>
191                 Après que le formulaire soit validé avec succès, vous devriez recevoir
192                 le fichier afin de le stocker dans sa destination finale en utilisant
193                 <methodname>receive()</methodname>.
194                 De plus, vous pouvez déterminer son emplacement finale en utilisant
195                 <methodname>getFileName()</methodname>:
196             </para>
197             <programlisting language="php"><![CDATA[
198 if (!$form->isValid()) {
199     print "Uh oh... erreur de validation";
201 if (!$form->foo->receive()) {
202     print "Erreur de réception de fichier";
204 $location = $form->foo->getFileName();
205 ]]></programlisting>
206         </example>
207         <note>
208             <title>Emplacement d'upload par défaut</title>
209             <para>
210                 Par défaut, les fichiers sont uploadés dans le répertoire temp
211                 du système.
212             </para>
213         </note>
214         <note>
215             <title>Valeur de fichier</title>
216             <para>
217                 Au sein du <acronym>HTTP</acronym> un élément fichier n'a aucune valeur.
218                 Pour cette raison et pour des raisons de sécurité
219                 <methodname>getValue()</methodname> retourne seulement le nom du fichier
220                 uploadé et non le chemin complet. Si vous avez besoin du chemin du fichier,
221                 appellez <methodname>getFileName()</methodname>, qui retourne à la fois le
222                 chemin et le nom du fichier.
223             </para>
224         </note>
225         <para>
226             Par défaut, le fichier sera automatiquement reçu quand vous appellerez
227             <methodname>getValues()</methodname> sur le formulaire. La raison derrière
228             ce comportement est que le fichier lui même est la valeur de l'élément fichier.
229         </para>
230         <programlisting language="php"><![CDATA[
231 $form->getValues();
232 ]]></programlisting>
233         <note>
234             <para>
235                 Ainsi, un appel supplémentaire de <methodname>receive()</methodname> après avoir
236                 appellé <methodname>getValues()</methodname> n'aura aucun effet. De même, créer
237                 une instance de <classname>Zend_File_Transfer</classname> n'aura aucun effet non
238                 plus puisqu'il n'y aura plus de fichier à recevoir.
239             </para>
240         </note>
241         <para>
242             Cela dit, parfois vous aurez besoin d'appeller <methodname>getValues()</methodname> sans
243             recevoir le fichier. Vous pouvez l'archiver en appellant
244             <methodname>setValueDisabled(true)</methodname>. Afin de recevoir la véritable valeur de
245             ce flag vous pouvez appeller <methodname>isValueDisabled()</methodname>.
246         </para>
247         <example id="zend.form.standardElements.file.retrievement">
248             <title>Récupération explicite de fichier</title>
249             <para>
250                 Tout d'abord appellez<methodname>setValueDisabled(true)</methodname>.
251             </para>
252             <programlisting language="php"><![CDATA[
253 $element = new Zend_Form_Element_File('foo');
254 $element->setLabel('Uploadez une image:')
255         ->setDestination('/var/www/upload')
256         ->setValueDisabled(true);
257 ]]></programlisting>
258             <para>
259                 Désormais le fichier sera reçu lorsque vous appellerez
260                 <methodname>getValues()</methodname>. Donc vous devez appeller vous même
261                 <methodname>receive()</methodname> sur l'élément fichier, ou une instance de
262                 <classname>Zend_File_Transfer</classname> .
263             </para>
264             <programlisting language="php"><![CDATA[
265 $values = $form->getValues();
266 if ($form->isValid($form->getPost())) {
267     if (!$form->foo->receive()) {
268         print "Erreur d'upload";
269     }
271 ]]></programlisting>
272         </example>
273         <para>
274             Il ya plusieurs étapes du fichier uploadés qui peuvent être vérifiées
275             avec les méthodes suivantes :
276         </para>
277         <itemizedlist>
278             <listitem>
279                 <para>
280                     <methodname>isUploaded()</methodname> : Vérifie si l'élément fichier
281                     a été uploadé ou non.
282                 </para>
283             </listitem>
284             <listitem>
285                 <para>
286                     <methodname>isReceived()</methodname> : Vérifie si l'élément fichier
287                     a déjà été reçu.
288                 </para>
289             </listitem>
290             <listitem>
291                 <para>
292                     <methodname>isFiltered()</methodname> : Vérifie si les filtres ont
293                     déjà été appliqué ou non sur l'élément fichier.
294                 </para>
295             </listitem>
296         </itemizedlist>
297         <example id="zend.form.standardElements.file.isuploaded">
298             <title>Vérifier si un fichier optionnel a été uploadé</title>
299             <programlisting language="php"><![CDATA[
300 $element = new Zend_Form_Element_File('foo');
301 $element->setLabel('Uploader une image:')
302         ->setDestination('/var/www/upload')
303         ->setRequired(false);
304 $element->addValidator('Size', false, 102400);
305 $form->addElement($element, 'foo');
306 // L'élément fichier foo est optionnel mais quand il est renseigné va là
307 if ($form->foo->isUploaded()) {
308     // fichier foo donné, faire quelque chose
310 ]]></programlisting>
311         </example>
312         <para>
313             <classname>Zend_Form_Element_File</classname> supporte aussi les fichiers multiples.
314             En appellant la méthode <methodname>setMultiFile($count)</methodname> vous pouvez définir,
315             le nombre d'éléments fichier à créer. Ceci vous évite de définir les mêmes
316             réglages plusieurs fois.
317         </para>
318         <example id="zend.form.standardElements.file.multiusage">
319             <title>Définir plusieurs fichiers</title>
320             <para>
321                 Créer un élément multifichier est identique à la création d'un élément unique.
322                 Appellez simplement <methodname>setMultiFile()</methodname> après que l'élément soit créé:
323             </para>
324             <programlisting language="php"><![CDATA[
325 $element = new Zend_Form_Element_File('foo');
326 $element->setLabel('Uploadez une image:')
327         ->setDestination('/var/www/upload');
328 // s'assure qu'il y a un fichier au minimum, 3 au maximum
329 $element->addValidator('Count', false, array('min' => 1, 'max' => 3));
330 // Limite à 100K
331 $element->addValidator('Size', false, 102400);
332 // seulement des JPEG, PNG, et des GIF
333 $element->addValidator('Extension', false, 'jpg,png,gif');
334 // définit 3 éléments fichiers identiques
335 $element->setMultiFile(3);
336 $form->addElement($element, 'foo');
337 ]]></programlisting>
338             <para>
339                 Vous avez maintenant 3 éléments d'upload de fichier identiques
340                 avec les mêmes paramètres. Pour obtenir le nombre de fichiers multiples
341                 défini, appellez simplement
342                 <methodname>getMultiFile()</methodname>.
343             </para>
344         </example>
345         <note>
346             <title>Eléments de fichier dans un sous formulaire</title>
347             <para>
348                 Quand vous l'utilisez dans des sous formulaires, vous devez définir
349                 des noms uniques.
350                 Par exemple, si vous nommez un élément fichier "file" dans le subform1,
351                 vous devez un nom différent à tout autre élément fichier dans subform2.
352             </para>
353             <para>
354                 Si il y a deux éléments fichier portant le même nom, le second élément
355                 n'est pas affiché ou soumis.
356             </para>
357             <para>
358                 De plus, les éléments fichiers ne sont pas affichés au sein du sous formulaire.
359                 Donc lorsque vous ajouter un élément fichier dans un sous formulaire, l'élément
360                 sera affiché dans le formulaire principal.
361             </para>
362         </note>
363         <para>
364             Afin de limiter, vous pouvez spécifier la taille maximum d'un fichier en définissant
365             l'option <constant>MAX_FILE_SIZE</constant> sur le formulaire. Quand vous définissez
366             cette valeur en utilisant la méthode
367             <methodname>setMaxFileSize($size)</methodname>, elle sera affiché avec l'élément
368             fichier.
369         </para>
370         <programlisting language="php"><![CDATA[
371 $element = new Zend_Form_Element_File('foo');
372 $element->setLabel('Uploadez une image:')
373         ->setDestination('/var/www/upload')
374         ->addValidator('Size', false, 102400) // limit to 100K
375         ->setMaxFileSize(102400); // limite la taille de fichier coté client
376 $form->addElement($element, 'foo');
377 ]]></programlisting>
378         <note>
379             <title>MaxFileSize et Eléments fichier multiple</title>
380             <para>
381                 Quand vous utilisez des éléments fichiers multiples dans votre formulaire
382                 vous devez définir <constant>MAX_FILE_SIZE</constant> seulement une fois.
383                 La redéfinir écrasera la valeur précédente.
384             </para>
385             <para>
386                 Notez que c'est aussi le cas lorsque vous utilisez des formulaires multiples.
387             </para>
388         </note>
389     </sect2>
390     <sect2 id="zend.form.standardElements.hidden">
391         <title>Zend_Form_Element_Hidden</title>
392         <para>
393             Les éléments cachés injectent des données qui doivent être soumises, mais pas manipulées
394             par l'utilisateur. <classname>Zend_Form_Element_Hidden</classname> remplit cette tâche
395             avec le helper de vue 'formHidden'.
396         </para>
397     </sect2>
398     <sect2 id="zend.form.standardElements.hash">
399         <title>Zend_Form_Element_Hash</title>
400         <para>
401             Cette élément fournit une proctection contre les attaques CSRF sur les formulaires,
402             en s'assurant que les données sont soumises par la session utilisateur qui a
403             générée le formulaire et non par un script malveillant. La protection est réalisée
404             en ajouté un élément de hachage au formulaire et en le vérifiant lors de la soumission
405             du formulaire.
406         </para>
407         <para>
408             Le nom de l'élément de hachage doit être unique. Nous recommandons d'utiliser
409             l'option <literal>salt</literal> pour l'élément - deux hachages ayant le même nom
410             mais des salt différent ne causeront pas de collision :
411         </para>
412         <programlisting language="php"><![CDATA[
413 $form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique'));
414 ]]></programlisting>
415         <para>
416             Vous pouvez définir le salt ultérieurement en utilisant la méthode
417             <methodname>setSalt($salt)</methodname>.
418         </para>
419         <para>
420             En interne, l'élément stocke un identifiant unique en utilisant
421             <classname>Zend_Session_Namespace</classname>, et le vérifie lors de la soumission
422             (en vérifiant que le TTL n'a pas expiré). Le validateur 'Identical' est ensuite
423             utilisé pour s'assurer que le hachage soumis correspond au hachage stocké.
424         </para>
425         <para>
426             Le helper de vue 'formHidden' est utilisé pour rendre l'élément dans le formulaire.
427         </para>
428     </sect2>
429     <sect2 id="zend.form.standardElements.Image">
430         <title>Zend_Form_Element_Image</title>
431         <para>
432             Des images peuvent être utilisées comme éléments de formulaires, et vous
433             pouvez utiliser ces images en tant qu'éléments graphiques sur les
434             boutons de formulaires.
435         </para>
436         <para>
437             Les images ont besoin d'une image source. <classname>Zend_Form_Element_Image</classname>
438             permet de la spécifier en utilisant l'accesseur <methodname>setImage()</methodname>
439             (ou la clé de configuration 'imageValue'). Quant la valeur définie pour l'élément
440             corresponde à <code>imageValue</code>, alors l'accesseur
441             <methodname>isChecked()</methodname> retournera <constant>TRUE</constant>.
442         </para>
443         <para>
444             Les éléments image utilise le
445             <link linkend="zend.form.standardDecorators.image"> décorateur Image
446                 </link> pour le rendu, en plus des décorateur standard Errors,
447             HtmlTag et Label. Vous pouvez spécifier une balise en option au décorateur
448             <code>Image</code> qui entourera l'élément image.
449         </para>
450     </sect2>
451     <sect2 id="zend.form.standardElements.multiCheckbox">
452         <title>Zend_Form_Element_MultiCheckbox</title>
453         <para>
454             Souvent, vous pouvez avoir un ensemble de case à cocher apparenté, et vous
455             souhaitez grouper ces résultat. Cela ressemble beaucoup à <link
456                 linkend="zend.form.standardElements.multiselect"> Multiselect</link>,
457             mais au lieu que ce soit une liste déroulant, vous avez besoin d'afficher
458             des paires case à cocher/valeur.
459         </para>
460         <para>
461             <classname>Zend_Form_Element_MultiCheckbox</classname> rend cela simple
462             comme bonjour. Comme tous les éléments qui étendent l'élément de base Multi,
463             vous pouvez spécifier une liste d'options et les valider simplement à l'aide
464             de cette même liste. Le helper de vue 'formMultiCheckbox' s'assure qu'elles
465             seront retournées dans un tableau lors la soumission du formulaire.
466         </para>
467         <para>
468             Par défaut, cet élément enregistre un validateur <code>InArray</code>
469             qui effectue la validation à l'aide des clés du tableau d'options enregistrées.
470             Vous pouvez désactiver ce comportement, soit en appellant
471             <methodname>setRegisterInArrayValidator(false)</methodname>, soit en passant
472             une valeur <constant>FALSE</constant> à la clé de configuration
473             <code>registerInArrayValidator</code>.
474         </para>
475         <para>
476             Vous pouvez manipuler les diverses options de case à cocher en utilisant
477             les méthodes suivantes :
478         </para>
479         <itemizedlist>
480             <listitem>
481                 <para><methodname>addMultiOption($option, $value)</methodname></para>
482             </listitem>
483             <listitem>
484                 <para><methodname>addMultiOptions(array $options)</methodname></para>
485             </listitem>
486             <listitem>
487                 <para>
488                     <methodname>setMultiOptions(array $options)</methodname> (écrase les options
489                     existantes)
490                 </para>
491             </listitem>
492             <listitem><para><methodname>getMultiOption($option)</methodname></para></listitem>
493             <listitem><para><methodname>getMultiOptions()</methodname></para></listitem>
494             <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
495             <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
496         </itemizedlist>
497         <para>
498             Pour marquer les éléments cochés, vous devez passer un tableau de valeur à
499             <methodname>setValue()</methodname>. Ce qui suit cochera les valeur "bar"
500             et "bat":
501         </para>
502         <programlisting language="php"><![CDATA[
503 $element = new Zend_Form_Element_MultiCheckbox('foo', array(
504     'multiOptions' => array(
505         'foo' => 'Foo Option',
506         'bar' => 'Bar Option',
507         'baz' => 'Baz Option',
508         'bat' => 'Bat Option',
509     );
511 $element->setValue(array('bar', 'bat'));
512 ]]></programlisting>
513         <para>
514             Notez que même en définissant une valeur unique vous devrez passer un tableau.
515         </para>
516     </sect2>
517     <sect2 id="zend.form.standardElements.multiselect">
518         <title>Zend_Form_Element_Multiselect</title>
519         <para>
520             Les éléments <code>select</code> <acronym>XHTML</acronym>  autorisent un attribut
521             'multiple', indiquant que plusieurs options peuvent être sélectionné pour la soumission
522             du formulaire, au lieu d'une seule habituellement.
523             <classname>Zend_Form_Element_Multiselect</classname> étend
524             <link
525                 linkend="zend.form.standardElements.select">Zend_Form_Element_Select</link>,
526             et définit l'attribut <code>multiple</code> à 'multiple'. Comme les autres classes qui
527             hétite la classe de base
528             <classname>Zend_Form_Element_Multi</classname>, vous pouvez manipuler les options
529             du select en utilisant :
530         </para>
531         <itemizedlist>
532             <listitem>
533                 <para><methodname>addMultiOption($option, $value)</methodname></para>
534             </listitem>
535             <listitem>
536                 <para><methodname>addMultiOptions(array $options)</methodname></para>
537             </listitem>
538             <listitem>
539                 <para>
540                     <methodname>setMultiOptions(array $options)</methodname> (écrase les options
541                     existantes)
542                 </para>
543             </listitem>
544             <listitem><para><methodname>getMultiOption($option)</methodname></para></listitem>
545             <listitem><para><methodname>getMultiOptions()</methodname></para></listitem>
546             <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
547             <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
548         </itemizedlist>
549         <para>
550             Si un adapteur de traduction est enregistré au niveau du formulaire et/ou
551             de l'élément, les valeurs des options seront traduites dans le cadre de
552             l'affichage.
553         </para>
554         <para>
555             Par défaut, cette élément utilise un validateur <code>InArray</code>
556             qui effectue sa validation à partir des clés de tableau des options enregistrées.
557             Vous pouvez désactiver ce comportement, soit en appellant
558             <methodname>setRegisterInArrayValidator(false)</methodname>, ou en passant une valeur
559             <constant>FALSE</constant> à la clé de configuration
560             <code>registerInArrayValidator</code>.
561         </para>
562     </sect2>
563     <sect2 id="zend.form.standardElements.password">
564         <title>Zend_Form_Element_Password</title>
565         <para>
566             Les éléments mot de passe sont fondamentalement des éléments texte normaux
567             -- à l'exception du fait que vous ne voulez pas que le mot de passe soumis
568             soit affiché dans les messages d'erreurs ou lorsque le formulaire est
569             affiché à nouveau.
570         </para>
571         <para>
572             <classname>Zend_Form_Element_Password</classname> effectue cela en appellant
573             <methodname>setObscureValue(true)</methodname> sur chaque validateur (s'assurant
574             ainsi que le mot de passe est dissimulé dans les messages d'erreur de validation),
575             et utilise le helper de vue 'formPassword' qui n'affiche pas la valeur qui lui est
576             passé).
577         </para>
578     </sect2>
579     <sect2 id="zend.form.standardElements.radio">
580         <title>Zend_Form_Element_Radio</title>
581         <para>
582             Les éléments radio vous permettend de spécifier plusieurs options, parmi
583             lesquelles vous n'avez besoin que d'une seule. <classname>Zend_Form_Element_Radio</classname>
584             étend la classe de base <classname>Zend_Form_Element_Multi</classname>,
585             vous permettant ainsi de spécifier un nombre indéfini d'options, et utilise
586             ensuite le helper de vue <code>formRadio</code> pour les afficher.
587         </para>
588         <para>
589             Par défaut, cette élément utilise un validateur <code>InArray</code>
590             qui effectue sa validation à partir des clés de tableau des options enregistrées.
591             Vous pouvez désactiver ce comportement, soit en appellant
592             <methodname>setRegisterInArrayValidator(false)</methodname>, ou en passant une valeur
593             <constant>FALSE</constant> à la clé de configuration
594             <code>registerInArrayValidator</code>.
595         </para>
596         <para>
597             Comme tous les éléments étendant la classe de base Multi element, les méthodes
598             suivantes peuvent être utilisé pour manipuler les options radio affichées :
599         </para>
600         <itemizedlist>
601             <listitem>
602                 <para><methodname>addMultiOption($option, $value)</methodname></para>
603             </listitem>
604             <listitem>
605                 <para><methodname>addMultiOptions(array $options)</methodname></para>
606             </listitem>
607             <listitem>
608                 <para>
609                     <methodname>setMultiOptions(array $options)</methodname>
610                     (écrase les options existantes)
611                 </para>
612             </listitem>
613             <listitem><para><methodname>getMultiOption($option)</methodname></para></listitem>
614             <listitem><para><methodname>getMultiOptions()</methodname></para></listitem>
615             <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
616             <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
617         </itemizedlist>
618     </sect2>
619     <sect2 id="zend.form.standardElements.reset">
620         <title>Zend_Form_Element_Reset</title>
621         <para>
622             Les boutons de mise à zéro sont typiquement utilisé pour vider un formulaire,
623             et ne font pas partie des données soumises. Cela dit, comme ils remplissent un rôle
624             dans l'affichage, ils sont inclus dans les éléments standards.
625         </para>
626         <para>
627             <classname>Zend_Form_Element_Reset</classname> étend <link
628                 linkend="zend.form.standardElements.submit">Zend_Form_Element_Submit</link>.
629             Ainsi, le label est utilisé pour l'affichage du bouton et sera traduit, si un
630             adapteur de traduction est présent. Il utilise seulement les décorateurs
631             'ViewHelper' et 'DtDdWrapper', puisqu'il ne devrait jamais y avoir de messages
632             d'erreur pour ces éléments, le label ne sera pas non plus nécessaire.
633         </para>
634     </sect2>
635     <sect2 id="zend.form.standardElements.select">
636         <title>Zend_Form_Element_Select</title>
637         <para>
638             Les listes d'options sont une manière habituelle de limiter des choix spécifiques.
639             <classname>Zend_Form_Element_Select</classname> vous permet de les générer
640             rapidement et facilement.
641         </para>
642         <para>
643             Par défaut, cette élément utilise un validateur <code>InArray</code>
644             qui effectue sa validation à partir des clés de tableau des options enregistrées.
645             Vous pouvez désactiver ce comportement, soit en appellant
646             <methodname>setRegisterInArrayValidator(false)</methodname>, ou en passant une valeur
647             <constant>FALSE</constant> à la clé de configuration
648             <code>registerInArrayValidator</code>.
649         </para>
650         <para>
651             Comme il étend l'élément de base Multi, les méthodes suivantes peuvent
652             être utilisées pour manipuler les options du select :
653         </para>
654         <itemizedlist>
655             <listitem>
656                 <para><methodname>addMultiOption($option, $value)</methodname></para>
657             </listitem>
658             <listitem>
659                 <para><methodname>addMultiOptions(array $options)</methodname></para>
660             </listitem>
661             <listitem>
662                 <para>
663                     <methodname>setMultiOptions(array $options)</methodname>
664                     (écrase les options existantes)
665                 </para>
666             </listitem>
667             <listitem><para><methodname>getMultiOption($option)</methodname></para></listitem>
668             <listitem><para><methodname>getMultiOptions()</methodname></para></listitem>
669             <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
670             <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
671         </itemizedlist>
672         <para>
673             <classname>Zend_Form_Element_Select</classname> utilise le helper de vue
674             'formSelect pour la décoration.
675         </para>
676     </sect2>
677     <sect2 id="zend.form.standardElements.submit">
678         <title>Zend_Form_Element_Submit</title>
679         <para>
680             Les boutons Submit sont utilisé pour soumettre un formulaire. Vous pouvez
681             utiliser plusieurs boutons submit ; vous pouvez utiliser le bouton utilisé
682             pour soumettre le formulaire afin de décider quelle action effectuer avec
683             les données soumises.
684             <classname>Zend_Form_Element_Submit</classname> rend cette décisions simple,
685             en ajoutant une méthode <methodname>isChecked()</methodname> method ; puisqu'un
686             seul élément bouton sera soumis par le formulaire, après avoir rempli ou validé
687             le formulaire, vous pourrez appeller cette méthode sur chacun des boutons submit
688             afin de déterminer lequel a été utilisé.
689         </para>
690         <para>
691             <classname>Zend_Form_Element_Submit</classname> utilise le label comme "value"
692             du bouton submit, il sera traduit si un adapeur de traduction est présent.
693             <methodname>isChecked()</methodname> vérifie la valeur soumises avec
694             le label pour déterminer si le bouton a été utilisé.
695         </para>
696         <para>
697             Les décorateurs <link
698                 linkend="zend.form.standardDecorators.viewHelper">ViewHelper</link>
699             et <link
700                 linkend="zend.form.standardDecorators.dtDdWrapper">DtDdWrapper</link>
701             sont utilisé pour rendre cet élément. Aucun décorateur de label n'est utilisé,
702             puisque le label du bouton est utilisé lors du rendu de l'élément ; de plus,
703             vous n'associerez aucune erreurs avec l'élément submit.
704         </para>
705     </sect2>
706     <sect2 id="zend.form.standardElements.text">
707         <title>Zend_Form_Element_Text</title>
708         <para>
709             De loin le type d'élément de formulaire le plus répandu est l'élément text,
710             celui ci autorise des saisies de texte limité ; c'est un élément idéal pour
711             la plupart des saisies de données. <classname>Zend_Form_Element_Text</classname>
712             utilise simplement le helper de vue 'formText' pour afficher l'élément.
713         </para>
714     </sect2>
715     <sect2 id="zend.form.standardElements.textarea">
716         <title>Zend_Form_Element_Textarea</title>
717         <para>
718             Les Textareas sont utilisé lorsque de grandes quantités de texte sont
719             attendues, et ne limite pas la quantité de texte soumise (si ce n'est la
720             taille limite fixée par votre serveur ou  <acronym>PHP</acronym>).
721             <classname>Zend_Form_Element_Textarea</classname> utilise le helper de vue
722             'textArea' pour afficher ces éléments, et place la valeur comme contenu de
723             l'élément.
724         </para>
725     </sect2>
726 </sect1>
727 <!--
728 vim:se ts=4 sw=4 tw=80 et: