Código:
Mi gran tema pasa cuando quiero mostrar el error, no me surge nunca ya no se que hacer y me estoy llendo por las ramas!!!. Necesito de su ayuda.<?php class Form_Login extends Zend_Form { public $elementDecorators = array( 'ViewHelper', array('ViewScript', array('viewScript' => 'scripts/decorator/form.phtml', 'placement' => false), )); public $buttonDecorators = array( 'ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element', 'colspan' => 2)), array(array('label' => 'HtmlTag'), array('tag' => 'td', 'placement' => 'append')), array(array('row' => 'HtmlTag'), array('tag' => 'tr')), ); public function login( ) { $translate = Zend_Registry::get('Zend_Translate'); $User_Library_Varias = Zend_Registry::get('User_Library_Varias'); $this ->setAttrib('enctype', 'multipart/form-data') ->setAttrib('id','FormsLogin') ->setAction(Zend_Registry::get('baseUrl')); $element = array(); $usuario_element = new Zend_Form_Element_Text('FormsLogin_usuario'); //Generamos un elemento tipo text //Le asignamos todas las caracteristicas del campo $usuario_element ->setRequired(true) //Lo hacemos requerido ->addValidator('EmailAddress', false) //Validamos que sea mail ->setDecorators($this->elementDecorators) //Este decorator esta asignado arriba ->addErrorMessages(array( $User_Library_Varias->__CharToChange($translate->translate('No puede estar vacío este campo')), $User_Library_Varias->__CharToChange($translate->translate('Incorrecto. El usuario debe ser su correo electrónico')) )) //Enviamos los mensajes de error ->setLabel($User_Library_Varias->__CharToChange($translate->translate('FormLogin_usuario'))) //Label del campo //Le agregamos atributos al campo ->setAttrib('class', 'text ui-widget-content ui-corner-all') //Asignamos etiquetas al campo ->setAttrib('title', $User_Library_Varias->__CharToChange($translate->translate('FormLogin_usuario_Title'))); $element[] = $usuario_element; $contrasenia_element = new Zend_Form_Element_Password('FormsLogin_contrasenia'); //Generamos un elemento tipo text //Le asignamos todas las caracteristicas del campo $contrasenia_element ->setRequired(true) //Lo hacemos requerido ->addValidator('stringLength', false, array(6, 80)) //Validamos la longitud del texto ->setDecorators($this->elementDecorators) //Este decorator esta asignado arriba ->addErrorMessages(array( $User_Library_Varias->__CharToChange($translate->translate('No puede estar vacío este campo')), )) //Enviamos los mensajes de error ->setLabel($User_Library_Varias->__CharToChange($translate->translate('FormsLogin_contrasenia'))) //Label del campo //Le agregamos atributos al campo ->setAttrib('class', 'text ui-widget-content ui-corner-all') //Asignamos etiquetas al campo ->setAttrib('title', $User_Library_Varias->__CharToChange($translate->translate('FormLogin_contrasenia_Title'))); $element[] = $contrasenia_element; $aceptar_element = new Zend_Form_Element_Submit('FormsLogin_aceptar'); $aceptar_element ->setValue('FormsLogin_aceptar') ->setAttrib('style', 'margin-right: 3px;') ->setAttrib('title', $User_Library_Varias->__CharToChange($translate->translate('FormLogin_aceptar_Title'))) ->setDecorators($this->buttonDecorators); $element[] = $aceptar_element; return $this->setElements($element); } public function loadDefaultDecorators() { $this->setDecorators(array( 'FormElements', array('HtmlTag', array('tag' => 'table')), 'Form', )); } }
Busque en diferentes lugares aqui y en ninguno encontre la solución.
Por las dudas, el decorador que en un viewScript:
Código:
Desde ya muchas gracias!!!! <!-- Esta primera parte reemplazaria HtmlTag --> <tr class="formElementContent"> <!-- parte que remplaza el decorador Label --> <td> <?php $attribs = $this->element->getAttribs(); $label = $this->element->getLabel(); //nuevo, verificamos si el elemento es requerido, //entonces agregamos un elemento en html al final de la etiqueta if ($this->element->isRequired()) { $attribs['escape'] = false; $label = $this->escape($label); } echo $this->formLabel($this->element->getName(), $label); ?> </td> <td> <!-- parte del elemento --> <?php echo $this->content ?> <!-- parte que reemplaza Errors observen que estoy poniendo los errores con simples saltos de linea en lugar de lista --> </td> </tr> //Esta área no funciona <?php if ($this->element->getErrors()): ?> //Esto está mal no encuentro como arreglarlo <tr> <!-- esta parte es opcional si agregaron una descripción --> <td class="hint"><?php echo $this->element->getErrors() ?></td> </tr> <?php endif ?> <?php if ($this->element->get): ?> <tr> <!-- esta parte es opcional si agregaron una descripción --> <td class="hint"><?php echo $this->element->getDescription() ?></td> </tr> <?php endif ?> <tr id="tr_<?php echo $attribs['id'] ?>"> <td colspan="2"> </td> </tr>