Decoradores de Forms Específicos de DijitLa mayoría de los elementos de formularios pueden usar el decorador
DijitElement, que tomará los parámetros dijit de los elementos, y
pasarán estos y otros metadatos al ayudante de vista especificado por el
elemento. Sin embargo, para decorar los forms, sub forms, y grupos de
visualización, hay un conjunto de decoradores correspondientes a los
diversos esquemas dijit. Todos los decoradores dijit buscan la propiedad
dijitParams del elemento que va a ser
decorado, y mandarlos como un array $params al
ayudante de vista dijit que se está usando. Luego, éstos son separados
de cualquiera de las otras propiedades para evitar la duplicación de
información. Decorador DijitElement Al igual que el decorador
ViewHelper , DijitElement espera una propiedad del
helper en el elemento que luego usará
como el ayudante de vista cuando lo renderice. Los parámetros Dijit
suelen ser arrastrados directamente desde el elemento, pero también
pueden ser pasados como opciones vía la clave
dijitParams (el valor de esa clave debe
ser un array asociativo de opciones). Es importante que cada elemento tenga un único ID (como traído
desde el método getId() del elemento). Si
se detectan duplicados dentro del ayudante de vista
dojo() , el decorador accionará un
aviso, pero luego creará un único ID añadiéndole lo que devuelve
uniqid() al identificador. El uso estándar es simplemente asociar este decorador como el
primero de su cadena de decoradores, sin opciones
adicionales.Uso del Decorador DijitElementsetDecorators(array(
'DijitElement',
'Errors',
'Label',
'ContentPane',
));
]]>Decorador DijitForm El decorador DijitForm es muy similar al Form
decorator ; de hecho, básicamente puede ser utilizado de
manera intercambiable con él, ya que utiliza el mismo nombre de
ayudante de vista ('form'). Dado que dijit.form.Form no requiere ningún parámetro dijit para
la configuración, la principal diferencia es que el ayudante de
vista dijit del form exige que se pase un DOM ID para garantizar que
la creación programática del dijit pueda trabajar. El decorador
garantiza esto, pasando el nombre del form como el identificador.
Decoradores basados en DijitContainer El decorador DijitContainer es en
realidad una clase abstracta desde la cual derivan una variedad de
otros decoradores. Ofrece la misma funcionalidad de DijitElement , con el añadido del soporte para títulos.
Muchos esquemas de dijits requieren o pueden utilizar un título;
DijitContainer utilizará la propiedad del elemento leyenda (legend)
si está disponible, y también pueden utilizar tanto 'legend' o
'title' como opción del decorador, si es pasada. El título será
traducido si un adaptador de traducción con su correspondiente
traducción está presente. La siguiente es una lista de decoradores que heredan de
DijitContainer : AccordionContainerAccordionPaneBorderContainerContentPaneSplitContainerStackContainerTabContainerUso del Decorador DijitContainersetDecorators(array(
'FormElements',
array('TabContainer', array(
'id' => 'tabContainer',
'style' => 'width: 600px; height: 500px;',
'dijitParams' => array(
'tabPosition' => 'top'
),
)),
'DijitForm',
));
// Use un ContentPane en su sub form (que puede utilizarse con todos, pero no
// con AccordionContainer):
$subForm->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'dl')),
'ContentPane',
));
]]>