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.