Zend Framework 入門(4)——页面佈局

日期:2008-07-02  作者:喜騰小二  來源:PHPChina


Zend Framework 的页面佈局模組——Zend_Layout——既可以跟 MVC 一起使用,也可以單獨使用。本文隻討論與 MVC 一起使用的情況。

1. 佈局指令檔

在 application/views 下建立一個 layouts 的檔案夾。主佈局指令檔 layout.phtml 程式碼如下:
doctype('XHTML1_STRICT') ?>



headTitle() ?>
$this->headLink()->appendStylesheet("/styles/main.css");
// add more links ...
?>
headLink() ?>










partial('leftcolumn.phtml') ?>



layout()->content ?>




除了 layout.phtml 之外,還需要編寫 header.phtml,leftcolumn.phtml,footer.phtml,以及 main.css 等檔案。

Zend Framework 的文檔中用一個視圖表示了页面佈局的應用。

2. 設定页面佈局

在 MVC 下設定页面佈局非常簡單,編輯 html/index.php,加入下麵兩行程式碼:

/** Setup layout */
require_once 'Zend/Layout.php';
Zend_Layout::startMvc($rootPath . '/application/views/layouts');

注意:在啓動页面佈局後,要調整已有的各個页面,把不需要的 html 元素,如

<body> 等去掉。另外,可以透過 $this->headTitle() 來設定页面的題頭。</P><P>改變页面的佈局也很簡單,隻需在控制器中用下麵的程式碼即可:</P><P style="PADDING-LEFT: 30px">$this->_helper-><A class=bodytag href="http://www.yeeyan.com/articles/tag/showperson.php?perid=26" target=_blank><EM>layout</EM></A>->setLayout('new_layout');</P><P>如果一個控制器所有動作都使用同一個<A class=bodytag href="http://www.yeeyan.com/articles/tag/showperson.php?perid=24" target=_blank><EM>页面佈局</EM></A>,可以透過控制器的初始化函式來設定:</P><P style="PADDING-LEFT: 30px">public function init() {<BR>parent::init();<BR><BR>$this->_helper-><A class=bodytag href="http://www.yeeyan.com/articles/tag/showperson.php?perid=26" target=_blank><EM>layout</EM></A>->setLayout('new_layout'); <BR>}</P></p> <p> <script type="text/javascript"><!-- google_ad_client = "ca-pub-3992604787534534"; /* systn 中間 */ google_ad_slot = "3433162612"; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> <p> <p> <a href="http://www.systn.com/data/articles/index_tw.html" style="font-size:12px;"><<<返回技術中心</a> </div> <div id="article_right_info"> <div id="article_right"> <h1><a href="http://www.systn.com/data/articles/index_tw.html">技術文章</a></h1> <ul id="article_right_list"> <li><a href="http://www.systn.com/data/articles/83_tw.html" title="PHP+MySQL應用中使用XOR運算加密演算法">PHP+MySQL應用中使用XOR運算加密演算法</a></li> <li><a href="http://www.systn.com/data/articles/79_tw.html" title="LAMP組合勢不可擋 兩年後市場占有率最高">LAMP組合勢不可擋 兩年後市場占有率最高</a></li> <li><a href="http://www.systn.com/data/articles/161_tw.html" title="簡張桂—人物訪談錄">簡張桂—人物訪談錄</a></li> <li><a href="http://www.systn.com/data/articles/165_tw.html" title="紅帽新任CEO訪華計劃拓展中國開源市場">紅帽新任CEO訪華計劃拓展中國開源市場</a></li> <li><a href="http://www.systn.com/data/articles/234_tw.html" title="快速實現Apache二級網域名稱的方法">快速實現Apache二級網域名稱的方法</a></li> <li><a href="http://www.systn.com/data/articles/221_tw.html" title="FreeBSD下安裝apache2+mysql5+php5">FreeBSD下安裝apache2+mysql5+php5</a></li> <li><a href="http://www.systn.com/data/articles/128_tw.html" title="用PEAR Date進行日期時間處理">用PEAR Date進行日期時間處理</a></li> <li><a href="http://www.systn.com/data/articles/243_tw.html" title="Memcached深度分析">Memcached深度分析</a></li> <li><a href="http://www.systn.com/data/articles/241_tw.html" title="PHP Extended CHM 中文手冊">PHP Extended CHM 中文手冊</a></li> <li><a href="http://www.systn.com/data/articles/225_tw.html" title="六月開發語言排行榜出爐">六月開發語言排行榜出爐</a></li> </ul> </div> <div id="article_right"> <h1><a href="http://www.systn.com/data/news/list_1_tw.html">站內新聞</a></h1> <ul id="article_right_list"> <li><a href="http://www.systn.com/data/news/44_tw.html" title="Ease template 3 發佈單核心版本">Ease template 3 發佈單核心版本</a></li> <li><a href="http://www.systn.com/data/news/29_tw.html" title="Ease Template E3 正式發佈!">Ease Template E3 正式發佈!</a></li> <li><a href="http://www.systn.com/data/news/18_tw.html" title="新年休假計劃">新年休假計劃</a></li> <li><a href="http://www.systn.com/data/news/24_tw.html" title="ET 最新版本發佈">ET 最新版本發佈</a></li> <li><a href="http://www.systn.com/data/news/20_tw.html" title="健康出院回歸程式園">健康出院回歸程式園</a></li> <li><a href="http://www.systn.com/data/news/8_tw.html" title="自由社區登場!!!">自由社區登場!!!</a></li> <li><a href="http://www.systn.com/data/news/3_tw.html" title="Ease Template 公佈成功案例">Ease Template 公佈成功案例</a></li> <li><a href="http://www.systn.com/data/news/12_tw.html" title="Ease template 週末發佈新版~">Ease template 週末發佈新版~</a></li> <li><a href="http://www.systn.com/data/news/13_tw.html" title="ET 手冊將全部更新,並且制作完整範例!">ET 手冊將全部更新,並且制作完整範例!</a></li> <li><a href="http://www.systn.com/data/news/40_tw.html" title="EeeFrame Bate 發佈">EeeFrame Bate 發佈</a></li> </ul> </div> </div> </div> <!-- 版權 --> <div style="background: #fff; overflow: auto;_height: 1%;"> <div id="systn_copyright">Copyright 2004 - 2011 SYSTN.COM</div> </div> <!-- 頁腳 --> <ul id="systn_foot"> <li>粵ICP備09113102號</li> <li><a href="http://www.systn.com/data/committal_tw.html">贊助支援</a>  |</li> <li><a href="http://www.systn.com/data/contact_tw.html">聯係我們</a>  |</li> </ul> <div id="systn_end"></div> </div> <div style="display:none"> <a href="http://www.51.la/?5638121" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/5638121.asp" style="border:none" /></a> <script src='http://s23.cnzz.com/stat.php?id=970129&web_id=970129' language='JavaScript' charset='gb2312'></script> </div> </html>