鍍金池/ 教程/ PHP/ Yii Framework 開發(fā)教程(29) Zii組件-Menu 示例
Yii Framework 開發(fā)教程(16) UI 組件 StarRating 示例
Yii Framework 開發(fā)教程(2) Yii Web 應(yīng)用基礎(chǔ)
Yii Framework 開發(fā)教程(19) UI 組件 TreeView 示例
Yii Framework 開發(fā)教程(39) Zii 組件-Slider 示例
Yii Framework 開發(fā)教程(45) Zii 組件-Selectable 示例
Yii Framework 開發(fā)教程(44) Zii 組件-Resizable 示例
Yii Framework 開發(fā)教程(8) 使用 FormModel
Yii Framework 開發(fā)教程(42) Zii 組件-Draggable 示例
Yii Framework 開發(fā)教程(18) UI 組件 TextHighlighter 示例
Yii Framework 開發(fā)教程(32) Zii 組件-GridView 示例
Yii Framework 開發(fā)教程(30) Zii 組件-ListView 示例
Yii Framework 開發(fā)教程(9) UI 組件 Widget 概述
Yii Framework 開發(fā)教程(17) UI 組件 TabView 示例
Yii Framework 開發(fā)教程(24) 數(shù)據(jù)庫-DAO 示例
Yii Framework 開發(fā)教程(25) 數(shù)據(jù)庫-Query Builder 示例
Yii Framework 開發(fā)教程(21) UI 組件 自定義 Captcha 示例
Yii Framework 開發(fā)教程(38) Zii 組件-ProgressBar 示例
Yii Framework 開發(fā)教程(20) UI 組件 Captcha 示例
Yii Framework 開發(fā)教程(14) UI 組件 MaskedTextField 示例
Yii Framework 開發(fā)教程(22) UI 組件 Zii 組件簡介
Yii Framework 開發(fā)教程(31) Zii 組件-DetailView 示例
Yii Framework 開發(fā)教程(33) Zii 組件-Accordion 示例
Yii Framework 開發(fā)教程(36) Zii 組件-DatePicker 示例
Yii Framework 開發(fā)教程(6) CComponent 組件
Yii Framework 開發(fā)教程(37) Zii 組件-Dialog 示例
Yii Framework 開發(fā)教程(26) 數(shù)據(jù)庫-Active Record 示例
Yii Framework 開發(fā)教程(29) Zii組件-Menu 示例
Yii Framework 開發(fā)教程(46) Zii 組件-Sortable 示例
Yii Framework 開發(fā)教程(10) UI 組件 自定義組件
Yii Framework 開發(fā)教程(11) UI 組件 ActiveForm 示例
Yii Framework 開發(fā)教程(43) Zii 組件-Droppable 示例
Yii Framework 開發(fā)教程(27) 數(shù)據(jù)庫-關(guān)聯(lián) Active Record 示例
Yii Framework 開發(fā)教程(47) 主題 Theme 示例
Yii Framework 開發(fā)教程(48) 多國語言示例
Yii Framework 開發(fā)教程(35) Zii 組件-Button 示例
Yii Framework 開發(fā)教程(3) 為應(yīng)用添加日志
Yii Framework 開發(fā)教程(23) 數(shù)據(jù)庫-概述
Yii Framework 開發(fā)教程(12) UI 組件 ClipWidget 示例
Yii Framework 開發(fā)教程(41) Zii 組件-Tabs 示例
Yii Framework 開發(fā)教程(34) Zii 組件-AutoComplete 示例
Yii Framework 開發(fā)教程(40) Zii 組件-SliderInput 示例
Yii Framework 開發(fā)教程(5) URL 管理
Yii Framework 開發(fā)教程(4) Hangman 猜單詞游戲?qū)嵗?/span>
Yii Framework 開發(fā)教程(15) UI 組件 MultiFileUpload 示例
Yii Framework 開發(fā)教程(7) 使用 CHtml 創(chuàng)建 Form
Yii Framework 開發(fā)教程(28) Data Provider 簡介
Yii Framework 開發(fā)教程(1) 第一個應(yīng)用 Hello World
Yii Framework 開發(fā)教程(13) UI 組件 ContentDecorator 示例

Yii Framework 開發(fā)教程(29) Zii組件-Menu 示例

介紹完 Yii 數(shù)據(jù)庫接口外,從本篇開始介紹 Zii 組件,包括列表視圖 ListView,表格視圖 GridView,此外還包括一些基于 JQuery 的 UI 組件,如 AutoComplete,DataPicker, Button, Drag 和 Drop 等。

本文介紹 Menu 菜單用法,CMenu 使用 Html 列表顯示多級菜單,Menu 配置通過其屬性 item 來配置,每個菜單項包括三個主要屬性

  • visible 是否可見
  • active 當前菜單項是否選中,
  • items 子菜單項。

此外還包括如下屬性:

  • label: 可選,菜單名稱,支持使用 HTML 標記.
  • url: 可選,點擊該菜單轉(zhuǎn)的 URL 鏈接
  • template: 可選,菜單模板
  • linkOptions: array, 可選,額外的 HTML 鏈接屬性
  • itemOptions: array, 可選,額外的顯示菜單項的 HTML 屬性。
  • submenuOptions: array, 可選,額外顯示子菜單的 HTML 屬性.

一般可以把 Menu 定義在 Layout 布局中,比如本例,修改 protected/views/layout/main.php


    <?php $this->widget('zii.widgets.CMenu',array(
            'items'=>array(
                        array('label'=>'Home',
                            'url'=>array('/site/index')),
                        array('label'=>'About',
                            'url'=>array('/site/page',
                            'view'=>'about')),
                        array('label'=>'Contact',
                            'url'=>array('/site/page',
                            'view'=>'contact')),
                        array('label'=>'Login',
                            'url'=>array('/site/login'),
                            'visible'=>false),
                        ),
        )); ?>

本例使用 CViewAction 來顯示幾個靜態(tài)頁面,靜態(tài)頁面的缺省目錄為當前 Controller 的 View 目錄下的 pages 子目錄,本例在 pages 目錄下創(chuàng)建了兩個靜態(tài)頁面 about.php, contact.

要使用 CViewAction 來顯示靜態(tài)頁面,需要修改 Controller 的 actions 方法:


    public function actions()
    {
        return array(
            'page'=>array(
                'class'=>'CViewAction',
                )
            );
    }

此外如果要顯示菜單的層次軌跡(breadcrumbs),可以使用 Zii 組件中的 CBreadcrumbs 組件,CBreadcrumbs 一般配合 CMenu 使用:


    <?php if(isset($this->breadcrumbs)):?>
        <?php $this->widget('zii.widgets.CBreadcrumbs', array(
                'links'=>$this->breadcrumbs,
        )); ?><!-- breadcrumbs -->
    <?php endif?>

本例使用 Yii 缺省的 CSS,顯示結(jié)果如下:

http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/29.1.jpg" alt="picture29.1" />

如果不使用 CSS,顯示結(jié)果如下:

http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/29.2.jpg" alt="picture29.2" />

由此可見,需要同時使用 CMenu 組件配合合適的 CSS 才能顯示漂亮的菜單。

本例下載