Ver Mensaje Individual
  #9 (permalink)  
Antiguo 27/05/2011, 04:42
Avatar de jerkan
jerkan
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 19 años, 3 meses
Puntos: 19
Respuesta: Cambiar mensaje de error para un campo CSRF

Cita:
Iniciado por masterpuppet Ver Mensaje
Código PHP:
Ver original
  1. //custom form
  2. public function init()
  3. {
  4.     ...
  5.     $this->getElement('csrf')
  6.          ->getValidator('Identical')
  7.          ->setMessage($this->getTranslator()->_('Text to translate'), 'missingToken');
  8.     ...
  9. }
Intentando esta solución propuesta he implementado esta clase:
Código PHP:
Ver original
  1. <?php
  2. // library/My/Form/Element/Hash.php
  3. /**
  4.  * own Hash form element
  5.  */
  6. class My_Form_Element_Hash
  7.     extends Zend_Form_Element_Hash
  8. {
  9.     public function init()
  10.     {
  11.         $translate = Zend_Registry::get('translate');
  12.        
  13.         Zend_Debug::dump($this->getValidators());
  14.        
  15.         /*
  16.         $this->getValidator('Identical')
  17.              ->setMessage($this->getTranslator()
  18.                                ->_(Zend_Validate_Identical::NOT_SAME,
  19.                                    $translate->_('My_Form_Element_Hash_notSame')))
  20.              ->setMessage($this->getTranslator()
  21.                                ->_(Zend_Validate_Identical::MISSING_TOKEN,
  22.                                    $translate->_('My_Form_Element_Hash_missingToken')))
  23.         */
  24.         ;
  25.     }      
  26. }
El problema que tengo es que no hay ningún validador instanciado. El dump ese devuelve array vacío.

Mirando el código de Zend, he visto que dentro del constructor es donde se instancia el validador.

Entonces, ¿no entiendo por qué no tiene ningún validador instanciado?

Gracias