Zend_Dojo-Form.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15103 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
  5. <title>Elementos y Decoradores de Dojo Form</title>
  6. <para>
  7. Sobre la base de los ayudantes de vista dijit
  8. <link linkend="zend.dojo.view.dijit"></link>,
  9. la familia de clases <classname>Zend_Dojo_Form</classname> ofrece la
  10. posibilidad de utilizar Dijits nativamente en sus formularios.
  11. </para>
  12. <para>
  13. Hay tres opciones para utilizar los elementos de Dojo form con sus
  14. formularios:
  15. </para>
  16. <itemizedlist>
  17. <listitem>
  18. <para>
  19. Use <classname>Zend_Dojo::enableForm()</classname>. Esto le
  20. permitirá añadir recursivamente paths de plugins para
  21. decoradores y elementos de todos los items de forms adjuntos.
  22. Además, el objeto vista será habilitado para Dojo.
  23. Note, sin embargo, que cualquier subformulario que agregue
  24. <emphasis>después</emphasis> de esta llamada también
  25. tendrá que ser pasado mediante
  26. <classname>Zend_Dojo::enableForm()</classname>.
  27. </para>
  28. </listitem>
  29. <listitem>
  30. <para>
  31. Utilice las implementaciones específicas de Dojo para formularios y
  32. subformularios, <classname>Zend_Dojo_Form</classname> y
  33. <classname>Zend_Dojo_Form_SubForm</classname> respectivamente.
  34. Éstas pueden utilizarse como reemplazantes drop-in para
  35. <classname>Zend_Form</classname> y
  36. <classname>Zend_Form_SubForm</classname>, contener todos los
  37. paths apropiados de los decoradores y elementos, establecer
  38. una clase DisplayGroup por defecto específica, y habilitar la vista
  39. para Dojo.
  40. </para>
  41. </listitem>
  42. <listitem>
  43. <para>
  44. Por último, y lo más tedioso, puede establecer por sí mismo el
  45. path apropiado para el decorador y para el elemento, establecer
  46. por defecto la clase DisplayGroup, y habilitar la vista para Dojo.
  47. Dado que <classname>Zend_Dojo::enableForm()</classname> ya
  48. hizo esto, hay pocas razones para seguir esta vía.
  49. </para>
  50. </listitem>
  51. </itemizedlist>
  52. <example id="zend.dojo.form.enable">
  53. <title>Habilitando Dojo en sus formularios existentes</title>
  54. <para>
  55. "Pero espere", podría decir; "Ya extendí <classname>Zend_Form</classname>
  56. con mi propia clase personalizada de form! ¿Cómo puede habilitarlo para Dojo?"
  57. </para>
  58. <para>
  59. En primer lugar, y lo más fácil, simplemente cambie de extender
  60. <classname>Zend_Form</classname> a extender
  61. <classname>Zend_Dojo_Form</classname>, y actualizar todos los
  62. lugares donde se instancie a
  63. <classname>Zend_Form_SubForm</classname> para instanciar a
  64. <classname>Zend_Dojo_Form_SubForm</classname>.
  65. </para>
  66. <para>
  67. Un segundo enfoque es llamar al método <methodname>init()</methodname> dentro
  68. de sus forms personalizados
  69. <classname>Zend_Dojo::enableForm()</classname>. Cuando la definición
  70. del formulario está completa, mediante un loop habilite todos los
  71. SubForms de Dojo:
  72. </para>
  73. <programlisting language="php"><![CDATA[
  74. class My_Form_Custom extends Zend_Form
  75. {
  76. public function init()
  77. {
  78. // Dojo habilita el form:
  79. Zend_Dojo::enableForm($this);
  80. // ... continuar con la definición del form desde aquí
  81. // Dojo habilita todos los sub forms:
  82. foreach ($this->getSubForms() as $subForm) {
  83. Zend_Dojo::enableForm($subForm);
  84. }
  85. }
  86. }
  87. ]]></programlisting>
  88. </example>
  89. <para>
  90. El uso de los decoradores y elementos específicos de dijit form es como
  91. usar cualquier otro decorador o elemento de formularios.
  92. </para>
  93. <xi:include href="Zend_Dojo-Form-Decorators.xml" />
  94. <xi:include href="Zend_Dojo-Form-Elements.xml" />
  95. <xi:include href="Zend_Dojo-Form-Examples.xml" />
  96. </sect1>
  97. <!--
  98. vim:se ts=4 sw=4 et:
  99. -->