Elementos y Decoradores de Dojo Form
Sobre la base de los ayudantes de vista dijit
,
la familia de clases Zend_Dojo_Form ofrece la
posibilidad de utilizar Dijits nativamente en sus formularios.
Hay tres opciones para utilizar los elementos de Dojo form con sus
formularios:
Use Zend_Dojo::enableForm(). 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
después de esta llamada también
tendrá que ser pasado mediante
Zend_Dojo::enableForm().
Utilice las implementaciones específicas de Dojo para formularios y
subformularios, Zend_Dojo_Form y
Zend_Dojo_Form_SubForm respectivamente.
Éstas pueden utilizarse como reemplazantes drop-in para
Zend_Form y
Zend_Form_SubForm, contener todos los
paths apropiados de los decoradores y elementos, establecer
una clase DisplayGroup por defecto específica, y habilitar la vista
para Dojo.
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 Zend_Dojo::enableForm() ya
hizo esto, hay pocas razones para seguir esta vía.
Habilitando Dojo en sus formularios existentes
"Pero espere", podría decir; "Ya extendí Zend_Form
con mi propia clase personalizada de form! ¿Cómo puede habilitarlo para Dojo?"
En primer lugar, y lo más fácil, simplemente cambie de extender
Zend_Form a extender
Zend_Dojo_Form, y actualizar todos los
lugares donde se instancie a
Zend_Form_SubForm para instanciar a
Zend_Dojo_Form_SubForm.
Un segundo enfoque es llamar al método init() dentro
de sus forms personalizados
Zend_Dojo::enableForm(). Cuando la definición
del formulario está completa, mediante un loop habilite todos los
SubForms de Dojo:
getSubForms() as $subForm) {
Zend_Dojo::enableForm($subForm);
}
}
}
]]>
El uso de los decoradores y elementos específicos de dijit form es como
usar cualquier otro decorador o elemento de formularios.