Комментарии 7
извини что придираюсь, но я бы это делал в своем неймспейсе а не зендовском, и наследовал бы от класса, а не исправлял его. там всего то пару иетодов переопределить. тогда думаю будет красивее :)
+1
Да меня тоже это беспокоит. Вот сейчас у меня все декораторы лежат в Zend_Form_Decorator_*
но мне хотелось бы делать это в своем неймспейсе. Допустим у меня есть My_Form_Decorator_HtmlCode
Но при аттаче его к элементу строкой:
$elementDecorators = array(
array('decorator' => array('br' => 'HtmlCode'), 'options' => array('tag' => $addedHtml, 'placement' => Zend_Form_Decorator_Abstract::APPEND)),
);
$this -> addDecorators($elementDecorators);
Выдает ошибку, что плагин не найден. А не найден от, потому, что ищет он его в Zend/Form/Decorator
Кто знает, как переопределить путь?
но мне хотелось бы делать это в своем неймспейсе. Допустим у меня есть My_Form_Decorator_HtmlCode
Но при аттаче его к элементу строкой:
$elementDecorators = array(
array('decorator' => array('br' => 'HtmlCode'), 'options' => array('tag' => $addedHtml, 'placement' => Zend_Form_Decorator_Abstract::APPEND)),
);
$this -> addDecorators($elementDecorators);
Выдает ошибку, что плагин не найден. А не найден от, потому, что ищет он его в Zend/Form/Decorator
Кто знает, как переопределить путь?
0
я недавно изучаю zf… точно подсказать не могу, но решение явно смотрится не оптимально=)
Кстати:
сыро смотрится, лучше же написать:
а вообще лучше как-то через view сделать, а то из-за того, чтобы вставить перед формой кусок html создавать новый класс… не оптимально=)
Кстати:
protected function _getOpenTag($tag, array $attribs = null) { $html = $tag; return $html; }
сыро смотрится, лучше же написать:
protected function _getOpenTag($tag, array $attribs = null) { return $tag; }
а вообще лучше как-то через view сделать, а то из-за того, чтобы вставить перед формой кусок html создавать новый класс… не оптимально=)
0
zendframework.ru/articles/decorators-with-zend-form
вот ссылка в тему — очень познавательно
вот ссылка в тему — очень познавательно
+1
Добавлю что декоратор HtmlTag не обязательно обрамляет, есть параметры openOnly и closeOnly
0
Да, но он еще и проводит нормализацию параметра tag, что убивает весь код.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Произвольный html-код в Zend_Form