【问题标题】:Yii's zii.widgets.CMenu - can it be a pop-up menu?Yii 的 zii.widgets.CMenu - 可以是弹出菜单吗?
【发布时间】:2013-01-11 09:44:54
【问题描述】:

您好,我正在使用来自http://www.yiiframework.com/doc/api/1.1/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 代码 sn-p 只是将链接显示为分层列表。

当使用 id 为 mainmenu 的 div 时,事情似乎有所改善......然后我尝试使用很多嵌套数组:

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

它支持5层以上的数组嵌套...

但如果我突出显示/全选它(以显示白色菜单链接),它就不能很好地显示层次结构......

我想知道它是否可以是一个弹出菜单,如果父母悬停在上面,会逐渐显示孩子?

我还尝试从布局的 main.php 中禁用 id 为 mainmenu 的 div。

【问题讨论】:

标签: yii


【解决方案1】:

好的,看看你有什么,按照我的例子:

<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>

【讨论】:

  • 我正在尝试获得一个高度嵌套的版本,以便仅在父母悬停时显示子链接...
  • 所以这就是您要尝试的...在这种情况下,您必须生成所有菜单,将它们全部隐藏,并使用 jquery 附加事件以进行悬停操作并显示或隐藏 div
【解决方案2】:

我现在正在使用 MbMenu Yii 扩展程序...

http://www.yiiframework.com/extension/mbmenu

它非常易于安装和使用,而且 CMenu 的输入数组似乎可以重复使用(以及 CssMenu Yii 扩展)...

它位于以下位置: http://sky-walker.net/temp/test/yii/testnews/index.php?r=site/test

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多