2013-03-04 10 views
10

Ich erstelle ein Menü wie ein Twitter Bootstrap navbar mit CMenu Widget hinzuzufügen. Fein. Aber nur was, was nicht funktioniert ist 'label' => 'Dropdown <b class="caret"></b>', in der 9. Zeile. Es gerendert als Dropdown &lt;b class=&quot;caret&quot;&gt;&lt;/b&gt; auf Seite. So sehe ich Bildunterschrift 'Dropdown <b class="caret"></b>' anstelle von Dropdown ▼.Wie roh HTML in Yü CMenu Label

Wie kann ich den Code so ändern, dass in der Menübeschriftung nicht gescannter HTML-Code angezeigt wird?

Vielen Dank für Ihre Aufmerksamkeit.

+0

http://www.cniska.net/yii-bootstrap/#tbNavbar – hungneox

Antwort

22

Sie haben zu setzen encodeLabel Attribut CMenu zu false

<?php 
$this->widget('zii.widgets.CMenu', array(
    'encodeLabel' => false, 
    'htmlOptions' => array('class' => 'nav'), 
    'items' => array(
     array(
      'label' => 'Home', 
      'url' => array('/site/index'), 
     ), 
     array(
      'label' => 'Dropdown <b class="caret"></b>', 
      'url' => '#', 
      'submenuOptions' => array('class' => 'dropdown-menu'), 
      'items' => array(
       array(
        'label' => 'Submenu Item 1', 
        'url' => array('/user/create'), 
       ), 
       array(
        'label' => 'Submenu Item 1', 
        'url' => array('/user/list'), 
       ), 
      ), 
      'itemOptions' => array('class' => 'dropdown'), 
      'linkOptions' => array('class' => 'dropdown-toggle', 'data-toggle' => 'dropdown'), 
     ), 
    ), 
)); 
?> 
+0

Es funktioniert. Danke dir! – doktorgradus

1

Meine Lösung ist die Schaffung CMenu Erweiterung:

Layout/main.php

'submenuOptions'=>array('class'=>'dropdown-menu'), 
'itemOptions'=>array('class'=>'dropdown'), 
'linkOptions'=>array('class'=>'dropdown-toggle', 'data-toggle'=>'dropdown'), 
// Dropdown arrow toggle 
'dropdownArrow'=>true, 

ext/widgets /BootstrapCMenu.php

class BootstrapCMenu extends CMenu { 

protected function renderMenuItem($item) 
{ 
    if(isset($item['url'])) 
    { 
     $item['label'] .= ($item['dropdownArrow']) ? ' <b class="caret"></b>' : ''; 
     $label=$this->linkLabelWrapper===null ? $item['label'] : CHtml::tag($this->linkLabelWrapper, $this->linkLabelWrapperHtmlOptions, $item['label']); 
     return CHtml::link($label,$item['url'],isset($item['linkOptions']) ? $item['linkOptions'] : array()); 
    } 
    else 
     return CHtml::tag('span',isset($item['linkOptions']) ? $item['linkOptions'] : array(), $item['label']); 
} 

} 
0

In Yii 2.0, zum Hinzufügen von Glyphicon in Navbar-Menü können Sie die folgenden Informationen folgen.

bearbeiten in Anbieter \ yiisoft \ yii2-Bootstrap \ Nav.php unter renderItem Funktion den folgenden Code:

 if(isset($item['icons'])) 
     $label=Html::tag('span', '', ['class' => 'glyphicon glyphicon-'.$item['icons']]).$label; 

nun direkt ein beliebiges Symbol aus dem Code mit icons Option als

<?php 
$this->widget('zii.widgets.CMenu', array(
'items' => array(
    array(
     'label' => 'Home', 
     'url' => array('/site/index'), 
     'icons'=> 'home', 
    ), 
    array( 
     'label' => 'Dropdown <b class="caret"></b>', 
     'url' => '#', 
     'submenuOptions' => array('class' => 'dropdown-menu'), 
     'items' => array( 
      array( 
       'label' => 'Submenu Item 1', 
       'url' => array('/user/create'), 
      ), 
      array( 
       'label' => 'Submenu Item 1', 
       'url' => array('/user/list'), 
      ), 
     ), 
     'itemOptions' => array('class' => 'dropdown'), 
     'linkOptions' => array('class' => 'dropdown-toggle', 'data-toggle' => 'dropdown'), 
    ), 
    'htmlOptions' => array('class' => 'nav'), 
)); ?> 
verwenden können

Sie können die entsprechenden Änderungen auch in älteren Versionen von yii vornehmen.