dd,dtなどでされるZend_Formの表示をテーブル化にする。いろいろ柔軟にできるようになているけど、まだまだできないことも多い。
//formまわりを<table>にして、スタイルシートのクラスを「baseform」とする
$form->setDecorators(array(
‘FormElements’,
array(‘decorator’ => ‘HtmlTag’, ‘options’ => array(‘tag’ => ‘table’, ‘class’ => ‘baseform’)),
‘Form’,
));
//表示の設定
$form->setElementDecorators(array(
‘ViewHelper’,
‘Errors’,
array(‘decorator’ => ‘Description’, ‘options’ => array(‘tag’ => ‘p’, ‘class’ => ‘description’)),
//個別の要素の囲いを<td>にする
array(‘decorator’ => ‘HtmlTag’, ‘options’ => array(‘tag’ => ‘td’)),
//ラベルの囲みを<td>にする
array(‘decorator’ => ‘Label’, ‘options’ => array(‘tag’ => ‘td’)),
//ラベルと要素の囲みを<tr>にする
array(‘decorator’ => array(‘OuterHtmlTag’ => ‘HtmlTag’), ‘options’ => array(‘tag’ => ‘tr’)),
));
submitのラベルが表示されるとかあるけどある程度CSSでデザインできる
$submit = $form->createElement('submit','submit');
$submit->setOrder(10)//表示順
->setLabel('送信')
->removeDecorator('DtDdWrapper') //HTMLの装飾を解除
->addDecorator('HtmlTag',array('tag'=>'span')); //標準装飾の代わりにspanで装飾