| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?xml version="1.0" encoding="utf-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
- <title>Les éléments de formulaire et les décorateurs Dojo</title>
- <para>
- Bâtie sur les
- <link linkend="zend.dojo.view.dijit">aides de vues dijit</link>, la famille des classes
- <classname>Zend_Dojo_Form</classname> fournit la possibilité d'utiliser les Dijits
- nativement dans vos formulaires.
- </para>
- <para>
- Il existe trois options pour utiliser les éléments de formulaires Dojo avec vos
- formulaires :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Utilisez <methodname>Zend_Dojo::enableForm()</methodname>. Ceci ajoutera, de
- manière récursive, les chemins de plugin des éléments et des décorateurs pour tous
- les éléments de formulaires attachés. De plus, ceci active dojo dans l'objet de
- vue. Notez, cependant, que tout sous-formulaire que vous attacherez
- <emphasis>après</emphasis> cet appel devront eux aussi faire leur appel à
- <methodname>Zend_Dojo::enableForm()</methodname>.
- </para>
- </listitem>
- <listitem>
- <para>
- Utilisez les implémentations de formulaires et sous-formulaires spécifiques à
- Dojo, respectivement <classname>Zend_Dojo_Form</classname> et
- <classname>Zend_Dojo_Form_SubForm</classname>. Ceux-ci peuvent être utilisés en
- lieu et place de <classname>Zend_Form</classname> et
- <classname>Zend_Form_SubForm</classname>, ils contiennent tous les chemins
- appropriés des éléments et décorateurs, ils paramètrent une classe par défaut pour
- les DisplayGroup spécifique à Dojo et activent dojo dans l'objet de vue.
- </para>
- </listitem>
- <listitem>
- <para>
- En dernier, et le plus pénible, vous pouvez régler vous même les chemins
- appropriés vers les décorateurs et les éléments, régler la classe de DisplayGroup
- par défaut, et activer dojo dans l'objet de vue. Puisque
- <methodname>Zend_Dojo::enableForm()</methodname> fait déjà ceci, il n'y a que peu de
- raisons d'utiliser cette voie.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.dojo.form.enable">
- <title>Activation de Dojo dans vos formulaires existants</title>
- <para>
- "Mais attendez," vous allez me dire ; "j'étends déjà
- <classname>Zend_Form</classname> avec ma propre classe de formulaire
- personnalisé ! Comment puis-je activer Dojo ?'"
- </para>
- <para>
- Premièrement, et sans doute le plus simple, étendez
- <classname>Zend_Dojo_Form</classname> au lieu de <classname>Zend_Form</classname>, et
- mettez à jour tous les endroits où vous intanciez
- <classname>Zend_Form_SubForm</classname> en le remplaçant par
- <classname>Zend_Dojo_Form_SubForm</classname>.
- </para>
- <para>
- Une seconde approche consiste en un appel à
- <methodname>Zend_Dojo::enableForm()</methodname> dans la méthode <methodname>init()</methodname> de
- vos formulaires ; quand la définition du formulaire est complète, bouclez à travers
- tous les sous-formulaires pour y activer dojo pour chacun :
- </para>
- <programlisting language="php"><![CDATA[
- class My_Form_Custom extends Zend_Form
- {
- public function init()
- {
- // Activer Dojo pour le formulaire :
- Zend_Dojo::enableForm($this);
- // ... continuez la définition du formulaire ici
- // Activer Dojo pour tous les formulaires :
- foreach ($this->getSubForms() as $subForm) {
- Zend_Dojo::enableForm($subForm);
- }
- }
- }
- ]]></programlisting>
- </example>
- <para>
- L'utilisation des éléments de formulaires et les décorateurs spécifiques à Dijit est
- identique à l'utilisation de tous autres éléments de formulaires ou décorateurs.
- </para>
- <xi:include href="Zend_Dojo-Form-Decorators.xml">
- <xi:fallback>
- <xi:include href="../../en/module_specs/Zend_Dojo-Form-Decorators.xml" />
- </xi:fallback>
- </xi:include>
- <xi:include href="Zend_Dojo-Form-Elements.xml">
- <xi:fallback>
- <xi:include href="../../en/module_specs/Zend_Dojo-Form-Elements.xml" />
- </xi:fallback>
- </xi:include>
- <xi:include href="Zend_Dojo-Form-Examples.xml">
- <xi:fallback>
- <xi:include href="../../en/module_specs/Zend_Dojo-Form-Examples.xml" />
- </xi:fallback>
- </xi:include>
- </sect1>
|