2013-05-07 59 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) 
       ), 
      ), 
    ), 
));