Вы можете использовать докораторы, если это только вопрос позиционирования входных тегов. Это можно сделать путем перезаписи/изменения стандартного декоратора FormElements, например, путем добавления свойства float: left style к определенному элементу формы. Продолжая пример Давида:
$this->addElement('radio', 'myradio', array(
'label' => 'Select an option below',
'multiOptions' => array(
'val1' => 'Text 1',
'val2' => 'Text 2',
'val3' => 'Text 2',
),
'decorators' =>
array(
'ViewHelper',
'Errors',
'Description',
array('HtmlTag', array('tag' => 'dd', 'style' => 'float: left')),
'Label'
)
));
Существует также метод setDefaultDecorators(), что позволяет переписать все элементы декораторы во всей форме.
Более совершенное решение для создания составных элементов - http://weierophinney.net/matthew/archives/217-Creating-composite-elements.html - то есть элемент пользовательской формы, содержащий несколько входных тегов. Таким образом, у вас есть больший контроль над бизнес-логикой формы.
Это невероятно расплывчатый ответ. Позаботьтесь о более точном? – Andy