zend tutorial framework documentacion php zend-framework zend-form

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:

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.