# 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:

    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);
            }
        }
    }

El uso de los decoradores y elementos específicos de dijit form es como usar cualquier otro decorador o elemento de formularios.