#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.