我在 Zend_Config_Ini 中有以下默认装饰器来设置我的表单:
elementDecorators.viewHelper.decorator = "ViewHelper"
elementDecorators.label.decorator = "Label"
elementDecorators.errors.decorator = "Errors"
elementDecorators.htmlTag.decorator = "HtmlTag"
elementDecorators.htmlTag.options.tag = "li"
我在 Zend_Config_Ini 中也有以下元素定义:
elements.username.type = "text"
elements.username.options.label = "Username:"
elements.username.options.required = true
并产生以下输出:
<li>
<label for="username" class="required">Username:</label>
<input type="text" name="username" id="username" value="" />
</li>
现在我需要知道的是,我如何(最好通过 ini 配置文件)设置 LI 标签的 id 或 class?我想要以下输出:
<li id="form-username-element"> ... </li>
或者
<li class="form-2col"> ... </li>
更新:我可以通过覆盖元素配置本身中的所有装饰器来获得它,如下所示:
elements.username.options.decorators.viewHelper.decorator = "ViewHelper"
elements.username.options.decorators.label.decorator = "Label"
elements.username.options.decorators.errors.decorator = "Errors"
elements.username.options.decorators.htmlTag.decorator = "HtmlTag"
elements.username.options.decorators.htmlTag.options.tag = "li"
elements.username.options.decorators.htmlTag.options.class = "username-row-element"
所以这会起作用,但是会产生很多重复,因为这将不得不进入每个元素(最后一行的单个更改将是类设置本身)。所以我现在想知道的是,从 ini 文件中,有没有办法使用默认装饰器覆盖类名(而不是必须为每个元素复制所有装饰器)?