| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?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>Elementos y Decoradores de Dojo Form</title>
- <para>
- Sobre la base de los ayudantes de vista dijit
- <link linkend="zend.dojo.view.dijit"/>
- , la familia de clases
- <classname>Zend_Dojo_Form</classname>
- ofrece la posibilidad de
- utilizar Dijits nativamente en sus formularios.
- </para>
- <para>Hay tres opciones para utilizar los elementos de Dojo form con sus
- formularios:</para>
- <itemizedlist>
- <listitem>
- <para>
- Use
- <methodname>Zend_Dojo::enableForm()</methodname>
- . Esto le
- permitirá añadir recursivamente paths de plugins para
- decoradores y
- elementos de todos los items de forms adjuntos.
- Además, el objeto vista será
- habilitado para Dojo. Note, sin
- embargo, que cualquier subformulario que agregue
- <emphasis>después</emphasis>
- de esta llamada también tendrá
- que ser pasado mediante
- <methodname>Zend_Dojo::enableForm()</methodname>
- .
- </para>
- </listitem>
- <listitem>
- <para>
- Utilice las implementaciones específicas de Dojo para
- formularios y subformularios,
- <classname>Zend_Dojo_Form</classname>
- y
- <classname>Zend_Dojo_Form_SubForm</classname>
- respectivamente. Éstas pueden utilizarse como reemplazantes
- drop-in para
- <classname>Zend_Form</classname>
- y
- <classname>Zend_Form_SubForm</classname>
- , contener todos los
- paths apropiados de los decoradores y elementos, establecer una
- clase DisplayGroup por defecto específica, y habilitar la vista
- para Dojo.
- </para>
- </listitem>
- <listitem>
- <para>
- Por último, y lo más tedioso, puede establecer por sí mismo
- el path apropiado para el
- decorador y para el elemento,
- establecer por defecto la clase DisplayGroup, y
- habilitar la
- vista para Dojo. Dado que
- <methodname>Zend_Dojo::enableForm()</methodname>
- ya hizo
- esto, hay pocas razones para seguir esta vía.
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.dojo.form.enable">
- <title>Habilitando Dojo en sus formularios existentes</title>
- <para>
- "Pero espere", podría decir; "Ya extendí
- <classname>Zend_Form</classname>
- con mi propia clase
- personalizada de form! ¿Cómo puede habilitarlo para Dojo?"
- </para>
- <para>
- En primer lugar, y lo más fácil, simplemente cambie de extender
- <classname>Zend_Form</classname>
- a extender
- <classname>Zend_Dojo_Form</classname>
- , y actualizar todos los
- lugares donde se instancie a
- <classname>Zend_Form_SubForm</classname>
- para instanciar a
- <classname>Zend_Dojo_Form_SubForm</classname>
- .
- </para>
- <para>
- Un segundo enfoque es llamar al método
- <methodname>init()</methodname>
- dentro de sus forms
- personalizados
- <methodname>Zend_Dojo::enableForm()</methodname>
- .
- Cuando la definición del formulario está completa, mediante un loop
- habilite todos los
- SubForms de Dojo:
- </para>
- <programlisting language="php"><![CDATA[
- class My_Form_Custom extends Zend_Form
- {
- public function init()
- {
- // Dojo habilita el form:
- Zend_Dojo::enableForm($this);
- // ... continuar con la definición del form desde aquí
- // Dojo habilita todos los sub forms:
- foreach ($this->getSubForms() as $subForm) {
- Zend_Dojo::enableForm($subForm);
- }
- }
- }
- ]]></programlisting>
- </example>
- <para>El uso de los decoradores y elementos específicos de dijit form es
- como usar cualquier otro
- decorador o elemento de formularios.</para>
- <xi:include href="Zend_Dojo-Form-Decorators.xml"/>
- <xi:include href="Zend_Dojo-Form-Elements.xml"/>
- <xi:include href="Zend_Dojo-Form-Examples.xml"/>
- </sect1>
|