2013-05-07 51 views
2

我想在導航菜單中使用bootstrap和yii設置一個徽章,以顯示用戶有多少提醒。Yii Bootstrap - Badge Inside Menu

<?php $this->widget('bootstrap.widgets.TbNavbar',array(
     'items'=>array(
      array(
       'class'=>'bootstrap.widgets.TbMenu', 
       'items'=> 
array('label'=>'Alerts', 'url'=>array('/user/alerts')), 
array(array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), 
        array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest) 
       ), 
      ), 
     ), 
    )); ?> 

我可以在裏面放一個文字和一個徽章嗎?像:「3個警報」..其中'3'是我的徽章?並且警報將成爲警報頁面的鏈接?

$this->widget('bootstrap.widgets.TbBadge', array(
      'type'=>'inverse', 
      'label'=>'2', 
     )); 

回答

2

CBaseController :: widget的第三個參數決定了widget內容是應該捕獲到變量還是直接輸出。默認情況下,它輸出內容。 http://www.yiiframework.com/doc/api/1.1/CBaseController#widget-detail

另外,CMenu類有encodeLabel屬性http://www.yiiframework.com/doc/api/1.1/CMenu#encodeLabel-detail。它設置爲是true將輸出標籤(沒有被HTML編碼)

試試這個:

$badge=$this->widget('bootstrap.widgets.TbBadge', array(
    'type'=>'inverse', 
    'label'=>'2', 
), true); 

$this->widget('bootstrap.widgets.TbNavbar',array(
    'items'=>array(
     array(
      'class'=>'bootstrap.widgets.TbMenu', 
      'encodeLabel'=>false, 
      'items'=> 
       array(
        array('label'=>$badge.' Alerts', 'url'=>array('/user/alerts')), 
        array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), 
        array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest) 
       ), 
      ), 
    ), 
));