Zend_Formでテーブル化

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で装飾

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です