Как стать автором
Обновить

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

извини что придираюсь, но я бы это делал в своем неймспейсе а не зендовском, и наследовал бы от класса, а не исправлял его. там всего то пару иетодов переопределить. тогда думаю будет красивее :)
Да меня тоже это беспокоит. Вот сейчас у меня все декораторы лежат в 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
Кто знает, как переопределить путь?
addPrefixPath

я недавно изучаю zf… точно подсказать не могу, но решение явно смотрится не оптимально=)
Кстати:
    protected function _getOpenTag($tag, array $attribs = null)
    {
        $html = $tag;
        return $html;
    }

сыро смотрится, лучше же написать:
    protected function _getOpenTag($tag, array $attribs = null)
    {
        return $tag;
    }

а вообще лучше как-то через view сделать, а то из-за того, чтобы вставить перед формой кусок html создавать новый класс… не оптимально=)
Добавлю что декоратор HtmlTag не обязательно обрамляет, есть параметры openOnly и closeOnly
Да, но он еще и проводит нормализацию параметра tag, что убивает весь код.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории