Zend_Dojo-Form.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
  5. <title>Les éléments de formulaire et les décorateurs Dojo</title>
  6. <para>
  7. Bâtie sur les
  8. <link linkend="zend.dojo.view.dijit">aides de vues dijit</link>, la famille des classes
  9. <classname>Zend_Dojo_Form</classname> fournit la possibilité d'utiliser les Dijits
  10. nativement dans vos formulaires.
  11. </para>
  12. <para>
  13. Il existe trois options pour utiliser les éléments de formulaires Dojo avec vos
  14. formulaires&#160;:
  15. </para>
  16. <itemizedlist>
  17. <listitem>
  18. <para>
  19. Utilisez <methodname>Zend_Dojo::enableForm()</methodname>. Ceci ajoutera, de
  20. manière récursive, les chemins de plugin des éléments et des décorateurs pour tous
  21. les éléments de formulaires attachés. De plus, ceci active dojo dans l'objet de
  22. vue. Notez, cependant, que tout sous-formulaire que vous attacherez
  23. <emphasis>après</emphasis> cet appel devront eux aussi faire leur appel à
  24. <methodname>Zend_Dojo::enableForm()</methodname>.
  25. </para>
  26. </listitem>
  27. <listitem>
  28. <para>
  29. Utilisez les implémentations de formulaires et sous-formulaires spécifiques à
  30. Dojo, respectivement <classname>Zend_Dojo_Form</classname> et
  31. <classname>Zend_Dojo_Form_SubForm</classname>. Ceux-ci peuvent être utilisés en
  32. lieu et place de <classname>Zend_Form</classname> et
  33. <classname>Zend_Form_SubForm</classname>, ils contiennent tous les chemins
  34. appropriés des éléments et décorateurs, ils paramètrent une classe par défaut pour
  35. les DisplayGroup spécifique à Dojo et activent dojo dans l'objet de vue.
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. En dernier, et le plus pénible, vous pouvez régler vous même les chemins
  41. appropriés vers les décorateurs et les éléments, régler la classe de DisplayGroup
  42. par défaut, et activer dojo dans l'objet de vue. Puisque
  43. <methodname>Zend_Dojo::enableForm()</methodname> fait déjà ceci, il n'y a que peu de
  44. raisons d'utiliser cette voie.
  45. </para>
  46. </listitem>
  47. </itemizedlist>
  48. <example id="zend.dojo.form.enable">
  49. <title>Activation de Dojo dans vos formulaires existants</title>
  50. <para>
  51. "Mais attendez," vous allez me dire&#160;; "j'étends déjà
  52. <classname>Zend_Form</classname> avec ma propre classe de formulaire
  53. personnalisé&#160;! Comment puis-je activer Dojo&#160;?'"
  54. </para>
  55. <para>
  56. Premièrement, et sans doute le plus simple, étendez
  57. <classname>Zend_Dojo_Form</classname> au lieu de <classname>Zend_Form</classname>, et
  58. mettez à jour tous les endroits où vous intanciez
  59. <classname>Zend_Form_SubForm</classname> en le remplaçant par
  60. <classname>Zend_Dojo_Form_SubForm</classname>.
  61. </para>
  62. <para>
  63. Une seconde approche consiste en un appel à
  64. <methodname>Zend_Dojo::enableForm()</methodname> dans la méthode <methodname>init()</methodname> de
  65. vos formulaires ; quand la définition du formulaire est complète, bouclez à travers
  66. tous les sous-formulaires pour y activer dojo pour chacun&#160;:
  67. </para>
  68. <programlisting language="php"><![CDATA[
  69. class My_Form_Custom extends Zend_Form
  70. {
  71. public function init()
  72. {
  73. // Activer Dojo pour le formulaire :
  74. Zend_Dojo::enableForm($this);
  75. // ... continuez la définition du formulaire ici
  76. // Activer Dojo pour tous les formulaires :
  77. foreach ($this->getSubForms() as $subForm) {
  78. Zend_Dojo::enableForm($subForm);
  79. }
  80. }
  81. }
  82. ]]></programlisting>
  83. </example>
  84. <para>
  85. L'utilisation des éléments de formulaires et les décorateurs spécifiques à Dijit est
  86. identique à l'utilisation de tous autres éléments de formulaires ou décorateurs.
  87. </para>
  88. <xi:include href="Zend_Dojo-Form-Decorators.xml">
  89. <xi:fallback>
  90. <xi:include href="../../en/module_specs/Zend_Dojo-Form-Decorators.xml" />
  91. </xi:fallback>
  92. </xi:include>
  93. <xi:include href="Zend_Dojo-Form-Elements.xml">
  94. <xi:fallback>
  95. <xi:include href="../../en/module_specs/Zend_Dojo-Form-Elements.xml" />
  96. </xi:fallback>
  97. </xi:include>
  98. <xi:include href="Zend_Dojo-Form-Examples.xml">
  99. <xi:fallback>
  100. <xi:include href="../../en/module_specs/Zend_Dojo-Form-Examples.xml" />
  101. </xi:fallback>
  102. </xi:include>
  103. </sect1>