Я пытаюсь изменить HTML, выводимый Zend_Form, используя декораторы.
Я хочу, чтобы выводимый HTML выглядел следующим образом:
<form>
<fieldset>
<legend>Your Details</legend>
<dl>
<dt>label etc</dt>
<dd>input etc</dd>
<dt>label etc</dt>
<dd>input etc</dd>
</dl>
</fieldset>
<fieldset>
<legend>Address Details</legend>
<dl>
<dt>label etc</dt>
<dd>input etc</dd>
<dt>label etc</dt>
<dd>input etc</dd>
... etc ...
</dl>
</fieldset>
</form>
Я уже разбил разделы, которые я хочу, в определенных наборах полей, используя группы отображения, например,
$this->addDisplayGroup(array('name','email','telephone'),'yourdetails');
$yourdetails= $this->getDisplayGroup('personal');
$yourdetails->setDecorators(array(
'FormElements',
'Fieldset'
));
Это дает мне каждый раздел, находящийся внутри набора полей, но в каждом элементе формы теперь отсутствует обёртка dl, поэтому у меня есть:
<form>
<fieldset>
<dt>label etc</dt>
<dd>input etc</dd>
<dt>label etc</dt>
<dd>input etc</dd>
</fieldset>
... etc
</form>