Метка Zend_Form_Element в строке и элемент в строке - PullRequest
0 голосов
/ 11 апреля 2011

как украсить элемент формы Zend, чтобы поместить метку в tr и элемент в tr

<tr><td><label>name</label></td></tr>
<tr><td><input type="text"/></td></tr>

я использую этот код

$this->setElementDecorators(
    array('ViewHelper',
    array(array('data'=>'HtmlTag'),array('tag'=>'td','class'=>'element_td')),
    array('Label',array('tag'=>"td")),
    array(array('row'=>'HtmlTag'),array('tag'=>'tr'))
    )
);

но он производит метку и элемент в одном ряду [tr] я хочу метку в строке и элемент в другой строке, как это сделать ??

1 Ответ

4 голосов
/ 11 апреля 2011

Это немного сложно сделать с декораторами, но это возможно. Поскольку вы хотите обернуть два отдельных компонента в теги, которые отделены друг от друга, вам нужно сначала обернуть один из них с помощью декоратора HtmlTag, а после этого скомпоновать другой, добавив после него декораторы (или, возможно, другой способ вокруг и в ожидании):

$this->setElementDecorators(array(
    array('Label'),
    array(array('labelTd'=>'HtmlTag'),array('tag'=>'td','class'=>'label_td')),
    array(array('labelTr'=>'HtmlTag'),array('tag'=>'tr','class'=>'label_tr')),
    array(array('elementOpenTr'=>'HtmlTag'),array('tag'=>'tr','class'=>'element_tr','openOnly'=>true,'placement'=>'append')),
    array(array('elementOpenTd'=>'HtmlTag'),array('tag'=>'td','class'=>'element_td','openOnly'=>true,'placement'=>'append')),
    array('ViewHelper', array('placement' => 'append')),
    array(array('elementCloseTd'=>'HtmlTag'),array('tag'=>'td','closeOnly'=>true,'placement'=>'append')),
    array(array('elementCloseTr'=>'HtmlTag'),array('tag'=>'tr','closeOnly'=>true,'placement'=>'append'))
));
...