php - tutorial - Decoradores Zend<dt><dd>: ¿qué pierdo quitándolos?
zend framework 3 tutorial (3)
Son únicamente para estructurar la salida de sus elementos Zend Form en una lista de definiciones. Si su forma representa los errores se controla a través del decorador de errores.
Vea esta serie de artículos de Matthew Weier O''Phinney:
- El decorador Zend Form más simple
- Cómo capa Decorators
- Renderizar decoradores de formularios Zend individualmente
- Creando elementos compuestos
y el tutorial Zend_Form de Rob Allen:
Esta pregunta es específica de Zend_Form. Zend_Form agrega decoradores estándar como <dd> <dt> <dl>
. ¿Qué pierdo si tuviera que eliminarlos? ¿Los utiliza Zend_Form para reportar errores o por cualquier otra razón?
$element->removeDecorator(''DtDdWrapper'');
OR $element->clearDecorators();
y configurar tu propio decorador;
1) Es la forma más sencilla y tal vez la mejor práctica de cambiar la apariencia de los formularios a través de CSS, no mediante el marcado (escribiendo sus propios decoradores), al menos, cuando no tiene experiencia: es un buen programador. Al eliminar el decodificador DdDt, se pierden muchas posibilidades de CSS, como campos de entrada / etiquetas / listas de errores, posicionamiento, coloreado, indentación, etc. Por ejemplo, para <dt>
o <dd>
puede agregar su propia clase en la inicialización de formularios, que luego se puede diseñar, satisfaciendo sus necesidades específicas.
Ver código:
$comment = $this->createElement(''textarea'',''comment'',array(
''label''=>''Post a comment'',
''required''=>true
))
->setDecorators(array(
''ViewHelper'',
''label'',
''Errors'',
array(
''HtmlTag'',
array(
''tag'' => ''dd'',
''class''=>''elevatedField''
)
)
))
;
Ahora, en la hoja de estilo CSS de la regla .elevatedField{}
, puede definir una apariencia específica para este campo textarea. En realidad, este ejemplo no es para decodificador DdDt predeterminado, pero está explicando formas adecuadas de utilizar la etiqueta <dd>
. Casi lo mismo es para el decorador DdDt por defecto.
Mire aquí lo que se puede lograr con solo css: http://robertbasic.com/blog/styling-the-default-zend_form-layout/ Y no es un límite.
2) También se pierde la semántica del marcado html, que casi no tiene sentido, al menos por hoy.
Además, Zend_Form no usa DdDt para el informe de errores; hay otro decorador estándar llamado ''Errores'' para estas necesidades.