2013-11-26 3 views
2

Я пытаюсь добавить иконку в моей начальной загрузки навигационной панелиYii добавления шрифта удивительные иконки в начальной загрузки панели навигации

это значок я пытаюсь добавить <i class="icon-fa-comments icon-3x "></i>

я сейчас использую этот font awesome extension и это bootstrap extension

значок отображается, когда он находится в моем html, но не когда я добавляю его в навигационную панель. любая идея, что мне не хватает? извините, но новый для Yii, не может найти ключ, отличный от label, чтобы делать то, что я хочу. пытался htmlOptions, но не повезло слишком

<?php 
$this->widget('bootstrap.widgets.TbNavbar',array(
    'items'=>array(
     //'brand' => CHtml::encode(Yii::app()->name), //site name 
     //'fixed' => true, 
     array(
      'class'=>'bootstrap.widgets.TbMenu', 
      'items'=>array(
       array('label'=>'Home', 'url'=>array('/')), 
       array('label'=>'About', 'url'=>array('/about')), 
       array('label'=>'Contact', 'url'=>array('/contact')), 
       array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest), 
       array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'visible'=>Yii::app()->user->isGuest), 
       array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest), 
       array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest), 

      ), 
     ), 
     array(
      'class'=>'bootstrap.widgets.TbMenu', 
      'htmlOptions'=>array('class'=>'pull-right'), 
      'items'=>array(
       array('label'=>'<i class="icon-fa-comments icon-3x "></i>', 'url'=>'#'), 
       array('label'=>'Dropdown', 'url'=>'#', 'items'=>array(
        array('label'=>'Action', 'url'=>'#'), 
        array('label'=>'Another action', 'url'=>'#'), 
        array('label'=>'Something else here', 'url'=>'#'), 
        '---', 
        array('label'=>'Separated link', 'url'=>'#'), 
       )), 
      ), 
     ), 
    ), 
)); ?> 

ответ

1

попробуйте этот

array('icon'=>'icon-fa-comments icon-3x', 'url'=>'#'), 
+0

есть ли документация? похоже, не может найти его. – user2636556

+0

К сожалению, документации нет. Когда я столкнулся с такой же проблемой, я нашел это в исходном коде 'TbMenu' – ailinykh

0

несколько раз, вы получите квадраты на веб-странице, хотя вы успешно добавили CSS файл шрифта awesome.css. Решение очень легко вам и вам нужно разместить каталог шрифтов (содержащий четыре файла шрифтов), а также внутри папки CSS, где вы разместили font-awesome.css.

Каталог шрифтов содержит четыре других файла шрифта.

fontawesome-webfont.eot

fontawesome-webfont.ttf

fontawesome-webfont.woff

FontAwesome.otf

1

Для того, чтобы отобразить значки в Yii 2-компонентов, таких как Navbar или Nav, вы должны установить для encodeLabels значение false.

http://www.yiiframework.com/extension/yii2-icons/

+0

Спасибо! Это отлично поработало. Просто, чтобы сообщить другим, вам нужно установить «encodeLabels» => false, перед массивом «items». Установка encodeLabels в false в отдельных элементах меню не работает. – DrBorrow

0

Jay является правильным, но я нашел объяснение трудно следовать, поэтому я добавляю код здесь. Это то, что рабочий раствор выглядит следующим образом:

В заголовке PHP (предполагая, что вы установили Картики иконку)

use kartik\icons\Icon; 
Icon::map($this); 
... 

В навигационном виджете:

  echo Nav::widget([ 
      'options' => ['class' => 'navbar-nav navbar-right'], 
      'encodeLabels' => false, // declaration goes here (before the items) 
      'items' => [ 
       [ 
        'label' => Icon::show('home',[ 
         'class'=>'your-custom-class-if-needed' 
        ]), 
        'url' => ['/survey-visits/index'], 
        'visible' => !Yii::$app->user->isGuest, 
       ], 
Смежные вопросы