2012-07-14 42 views

回答

2

那麼沒有設置/屬性值,您可以指定默認CBreadcrumbs小部件類,將給你<li>。如果您查看其run()方法,您可以確認。在源代碼,你可以看到這一點:

public function run(){ 
// code 

foreach($this->links as $label=>$url) 
{ 
    if(is_string($label) || is_array($url)) 
     $links[]=CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url); 
    else 
     $links[]='<span>'.($this->encodeLabel ? CHtml::encode($url) : $url).'</span>'; 
} 
// more code 
} 

那麼你所要做的就是extend這個類,並指定自己的run方法,在這裏你可以使用<li>CHtml::tag('li',//other options)而不是默認的CHtml::link

編輯:

雖然我建議封閉<a>爲每個鏈接有<li>(而不是替換它):

$links[]='<li>'.CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url).'</li>'; 
+0

我做了一個小小的更新,並帶有建議。不要猶豫,要求澄清,並讓我知道這是如何解決你的。 – 2012-07-14 16:36:00

0

你可以做到這一點與 'activeLinkTemplate' 和「inactiveLinkTemplate '屬性:

$this->widget('zii.widgets.CBreadcrumbs', 
       array('tagName'=>'ul', 
        'homeLink'=>'<li>'.CHtml::link('Home', array('/')).'</li>', 
        'activeLinkTemplate'=>'<li><a href="{url}">{label}</a></li>', 
        'inactiveLinkTemplate'=>'<li class="active">{label}</li>', 
        'htmlOptions'=> array('class'=>'breadcrumb'), 
        'separator'=>'/', 
        'links'=>$this->breadcrumbs, 
      )); 

或者U可以寫'homeLink'=> false。但在這種情況下,你必須每次使用$ this-> breadcrumbs設置主頁URL。