PHP開發架構Yii Framework教程(29) Zii組件-Menu樣本

來源:互聯網
上載者:User

介紹完Yii資料庫介面外,從本篇開始介紹Zii組件,包括列表視圖ListView,表格視圖GridView,此外還包括一些基於 JQuery的UI組件,如AutoComplete,DataPicker, Button, Drag 和 Drop等。

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

visible  是否可見

active 當前功能表項目是否選中,

items 子功能表項。

此外還包括如下屬性:

label: 可選,菜單名稱,支援使用HTML標記 .

url: 可選,點擊該菜單轉的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來顯示幾個靜態頁面,靜態頁面的預設目錄為當前Controller的View目錄下的 pages子目錄,本例在pages目錄下建立了兩個靜態頁面about.php, contact.
要使用CViewAction來顯示靜態頁面,需要修 改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,顯示結果如下:

如果不使用CSS,顯 示結果如下:

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

本例下載:http://www.imobilebbs.com/download/yii/MenuDemo.zip

查看全套教程:http://www.bianceng.cn/webkf/PHP/201301/35265.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.