2013-01-11 61 views
1

嗨,我是利用http://www.yiiframework.com/doc/api/1.1/CMenuYii的zii.widgets.CMenu - 它可以是一個彈出式菜單嗎?

$this->widget('zii.widgets.CMenu', array(
'items'=>array(
    // Important: you need to specify url as 'controller/action', 
    // not just as 'controller' even if default acion is used. 
    array('label'=>'Home', 'url'=>array('site/index')), 
    // 'Products' menu item will be selected no matter which tag parameter value is since it's not specified. 
    array('label'=>'Products', 'url'=>array('product/index'), 'items'=>array(
     array('label'=>'New Arrivals', 'url'=>array('product/new', 'tag'=>'new')), 
     array('label'=>'Most Popular', 'url'=>array('product/index', 'tag'=>'popular')), 
    )), 
    array('label'=>'Login', 'url'=>array('site/login'), 'visible'=>Yii::app()->user->isGuest), 
), 

))的測試代碼;

其他測試代碼如zii.widgets.jui.CJuiAutoComplete和zii.widgets.jui.CJuiDraggable做工精細,我Yii的觀點...

的CMenu的代碼片段只是顯示的鏈接是一個分層列表。

當使用一個div的MainMenu的東西的ID似乎改善了一下......然後,我嘗試使用了大量嵌套的數組:

http://sky-walker.net/temp/test/yii/testnews/index.php?r=site/test

它支持5+級深度的嵌套數組...

但是,如果我想強調/選擇它所有的(顯示白色的菜單鏈接),它不會顯示很好的層次......

我在想,如果它可能是一個彈出菜單,逐漸顯示孩子,如果父母a重新徘徊?

我也嘗試禁用佈局的main.php的mainmenu的id與div。

+0

有沒有在您的菜單中的網頁源代碼之前有id =「nav」的div? –

+0

我已經試過,現在... –

+0

它的一個簡單的CSS問題;使用Firefox,看看什麼崩潰或什麼失蹤 –

回答

0

OK,看你有什麼後,請按照我的例子:

<div id="mainmenu"> 
       <?php 
       $this->widget('zii.widgets.CMenu', array(
        'items' => array(
         array('label' => 'linkbook', 'url' => array('/site/index')), 
         array('label' => 'About', 'url' => array('/site/page', 'view' => 'about')), 
         array('label' => 'Contact', 'url' => array('/site/contact')), 
         array('label' => 'Suggest Website', 'url' => array('/websiteSuggest/index'),'visible' => !Yii::app()->user->isGuest), 
         array('label' => 'Servers', 'url' => array('/server/index'),'visible' => !Yii::app()->user->isGuest), 
         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), 
        ), 
       )); 
       ?> 
    </div><!-- mainmenu --> 

      <br/> 

      <div id="mainmenu"> 
       <?php 
       $this->widget('zii.widgets.CMenu', array(
        'items' => array(
         array('label' => 'Website', 'url' => array('/website/index'), 'visible' => !Yii::app()->user->isGuest), 
         array('label' => 'Url', 'url' => array('/url/index'), 'visible' => !Yii::app()->user->isGuest), 
         array('label' => 'Pattern Url', 'url' => array('/patternUrl/index'), 'visible' => !Yii::app()->user->isGuest), 
        ), 
       )); 
       ?> 
      </div> 
+0

我想要得到一個高度嵌套的版本當父母被徘徊時,只顯示子鏈接... –

+0

因此,您正在嘗試......在這種情況下,您必須生成所有菜單,將它們全部隱藏起來,並通過使用jquery,爲onhover動作附加事件並顯示或隱藏div –