Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I output HTML from a Zend Validation Error?

I am trying to get this Zend Validator to output a link that goes to a resetpass form. At the moment, it is simply outputting the HTML as text. Any ideas on how to get it writing to the page as HTML?

Thanks!

Here's my code:

    protected $_authAdapter;
    protected $_messageTemplates = array(
            self::NOT_UNIQUE => 'This email has already been registered! <a href=\'/user/resetpass/\'>Need to reset your password?</a>'
    );

    public function isValid($value, $context=null)
    {
        $value = (string) $value;
        $users = new Users(array('db' => 'tdb'));
        if($users->userExists($value)){
            $this->_error(self::NOT_UNIQUE);
            return false;
        }
        return true;
    }
}
like image 397
Nicky Hajal Avatar asked May 02 '09 05:05

Nicky Hajal


2 Answers

On version 1.7 this is the correct way of accessing the validator and disable the escaping:

$zendelement->getDecorator('Errors')->setOption('escape', false);

like image 136
Fredcallagan Avatar answered Oct 22 '22 04:10

Fredcallagan


You have to pass the configuration option 'escape' = false to the Zend_Form_Decorator_Errors().

Mostly this one is loaded automatically so then you have to request it.

$zendelement->getDecorator('Zend_Form_Decorator_Errors')->setOption('escape', false);
like image 36
Peter Smit Avatar answered Oct 22 '22 03:10

Peter Smit