【发布时间】:2011-06-28 15:00:27
【问题描述】:
我正在为一个项目设计样式,每个人都使用 Zend_Form 和默认元素。这使得无法设置提交按钮的样式。 因此,我想覆盖提交按钮的默认 Zend_Form 装饰器,但不更改创建 Zend_Form 的每一行。
这可能吗? 如果是,怎么做?
【问题讨论】:
标签: php zend-form decorator zend-decorators
我正在为一个项目设计样式,每个人都使用 Zend_Form 和默认元素。这使得无法设置提交按钮的样式。 因此,我想覆盖提交按钮的默认 Zend_Form 装饰器,但不更改创建 Zend_Form 的每一行。
这可能吗? 如果是,怎么做?
【问题讨论】:
标签: php zend-form decorator zend-decorators
您可能希望继承 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>
【讨论】: