Как предотвратить экранирование в Zend Form Select: Zend Framework

#php #zend-framework #escaping #zend-form

#php #zend-framework #экранирование #zend-form

Вопрос:

как предотвратить экранирование html в zend form elemnt? Мой код вообще не работает

 $this->addElement('Select', 'forum_icon', array(
        'label' => 'Forum Icon',
        'value' => $this->_forum->FORUM_ICON,
        'escape' => false,
        'multiOptions' => $icons
    ));
  

я пробую другой метод, но он все еще не работает

 $this->forum_icon->setAttrib('escape', false);
  

заранее спасибо,

Брайан

Комментарии:

1. Вы не можете сделать это «простым способом». Вам нужно настроить свой собственный помощник по просмотру FormSelect без экранирования.

2. да, от этого у меня болит голова

Ответ №1:

Вы можете реализовать свой декоратор для элемента Select, который генерирует HTML для select с неэкранированным значением. Например:

 class My_Select_Decorator extends Zend_Form_Decorator_Abstract
{
    public function render($content)
    {
        $element = $this->getElement();
        // Generate HTML markup
        return $markup;
    }
}
  

Обратитесь к этим статьям для получения дополнительной информации:

http://weierophinney.net/matthew/archives/212-The-simplest-Zend_Form-decorator.html

http://codeutopia.net/blog/2008/08/07/zend_form-decorator-tips/

Комментарии:

1. элемент select не может отображать изображение внутри опции tag, это из-за формата dtd.