переписать определенные декораторы для всех объектов Zend_Form - PullRequest
0 голосов
/ 16 февраля 2011

Я работаю над стилизацией проекта, и все использовали Zend_Form и элементы по умолчанию.Это делает невозможным стилизацию кнопок отправки.Поэтому я хотел бы переписать Zend_Form Decorator по умолчанию для кнопок отправки, но не меняя каждую строку, где создается Zend_Form.

Возможно ли это?Если да, то как?

1 Ответ

1 голос
/ 16 февраля 2011

Возможно, вы захотите подкласс Zend_Form_Element_Submit и использовать loadDefaultDecorators() для установки декораторов по умолчанию для ваших отправок:

class My_Form_Element_Submit extends Zend_Form_Element_Submit
{
    public function loadDefaultDecorators()
    {
        // set your default decorators for the submit element       
        $decorators = $this->getDecorators();
        if (empty($decorators)) {
            $this->setDecorators(array(
                'ViewHelper',
                array(
                    array('field' => 'HtmlTag'),
                    array(
                        'tag'   => 'span',
                        'class' => 'some-wrapper-class'
                    ) 
                )
            ));
        }
    }
}

Вышеуказанные декораторы будутв результате HTML-код будет выглядеть примерно так , что позволит вам легко стилизовать кнопку отправки:

<span class="some-wrapper-class"> 
    <input type="submit" name="save" id="save" value="Save">
</span> 
...