Zend_Dojo-Form.xml 4.1 KB

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