Zend_Dojo-Form.xml 4.6 KB

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