2011-07-29 92 views
0

如何將默認提供的標準dt和dd標籤與Zend一起使用ul和li作爲單選按鈕列表?帶單選按鈕的Zend裝飾器?

,使得最終結果是:

UL標籤

李標籤單選按鈕1個端李標籤

李標籤單選按鈕2端李標籤

李標籤單選按鈕3最終李標籤

末UL標籤

我而不是dl dt標籤。

謝謝。

回答

3

你需要指定裝飾的自定義序列的單選按鈕元素,像這樣:

$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的形式是沒有那麼複雜。無論如何,上面的裝飾器數組基於Zend的默認裝飾器。您可能需要根據自己的喜好來定製它們。使單個單選按鈕包裝在列表中的關鍵部分是separator屬性,它告訴ZF在每個單選按鈕段之間放置什麼,以及用於將此塊包裝在外部<ul><li>...</li></ul>標記中的兩個額外的包裝。