目前我正在和Zend合作,我想解决一个小问题。
我有一个我想要添加到每个文本类型输入的类,但是我没有设置该类attrib,而是想从自定义表单装饰器中添加它,因为它必须在每个文本输入和textarea上你知道有时一次又一次地做某事很烦人。
我对Zend很新,所以我不知道应该从哪里开始...
仅仅为文本元素提供装饰器的代码:
'Zend_Form_Element_Text' => array(
'ViewHelper',
'Errors',
array ('Description', array('tag' => 'td','class' =>'iconset', 'escape'=>false )),
array (array ('data' => 'HtmlTag'), array ('tag' => 'td', 'class' => 'element')),
array ('Label', array ('tag' => 'td')),
array (array ('row' => 'HtmlTag'), array ('tag' => 'tr'))
),
使用此Zend生成表单
的这一部分<tr>
<td><label>Labeltext</label></td>
<td><input type="text" id="someid" name="somename" value="" /></td>
</tr>
我想锻炼用这个表单装饰器创建的每个元素都有一个类例如:“myclass”在这样的基础
<tr>
<td><label>Labeltext</label></td>
<td><input type="text" id="someid" name="somename" value="" class="myclass" /></td>
</tr>
答案 0 :(得分:0)
我看到的问题是,你要改变的部分不是装饰者,而是视图本身。现在我可能已经不在这个循环中了,但是我看到如何最容易解决这个问题的方法是子类化(使PHP类从Zend_Form_Element_*
扩展)你想要的输入元素类型CSS类集,并在初始化部分的某处设置此CSS类。然后在需要的地方使用新的PHP类/元素。