2011-07-29 19 views
0

Zendでデフォルトで提供されている標準のdtとddタグを、ラジオボタンリストにulとliを使用するようにするにはどうすればよいですか?ラジオボタン付きZend Decorator?

最終結果があるように:

ULタグ

リチウムタグラジオボタン1端リチウムタグ

リチウムタグラジオボタン2端のLiタグ

リチウムタグラジオボタン3終了liタグ

end ulタグ

i dl dtタグのnstead。

ありがとうございました。

答えて

3
あなたがそうのように、あなたのラジオボタン要素に対するデコレータのカスタムシーケンスを指定する必要があります

:私はZendのフォームを飾るwishが

$this->addElement('radio', 'zipZangZowie', array(
    'decorators' => array(
     'ViewHelper', 
     array(array('AddTheLi' => 'HtmlTag'), array('tag' => 'li')), 
     array(array('AddTheUl' => 'HtmlTag'), array('tag' => 'ul')), 
     'Errors', 
     array('Description', array('tag' => 'p', 'class' => 'description')), 

     // specifying the "div" tag to wrap your <label> elements is not strictly 
     // necessary, but it produces valid XHTML if your form elements are wrapped 
     // in block-level tags like "<li>" (see next comment) 
     array('Label', array('tag' => 'div')), 

     // uncomment the following if all of your form elements are wrapped in "<li>" 
     //array('HtmlTag', array('tag' => 'li')), 
    ), 
    'disableLoadDefaultDecorators' => true, 
    'label' => 'Zip Zang Zowie', 
    'separator' => '</li><li>', 
    'attribs' => array(
     'options' => array(
      'foo' => 'Option 1', 
      'bar' => 'Option 2', 
      'baz' => 'Option 3' 
     ), 
    ), 
)); 

はそれほど複雑ではありませんでした。とにかく、上記のデコレータ配列は、Zendのデフォルトデコレータに基づいています。あなたは好みに合わせてカスタマイズする必要があるかもしれません。個々のラジオボタンをリストにラップさせるために重要な部分は、separator属性です。これはZFに各ラジオボタンセグメントの間に配置する内容と、このブロックを外側の<ul><li>...</li></ul>タグにラップするための2つの余分なHtmlTagラッパーです。

関連する問題