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.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.html">技术文章</a></h1> <ul id="article_right_list"> <li><a href="http://www.systn.com/data/articles/83.html" title="PHP+MySQL应用中使用XOR运算加密算法">PHP+MySQL应用中使用XOR运算加密算法</a></li> <li><a href="http://www.systn.com/data/articles/79.html" title="LAMP组合势不可挡 两年后市场占有率最高">LAMP组合势不可挡 两年后市场占有率最高</a></li> <li><a href="http://www.systn.com/data/articles/161.html" title="简张桂—人物访谈录">简张桂—人物访谈录</a></li> <li><a href="http://www.systn.com/data/articles/165.html" title="红帽新任CEO访华计划拓展中国开源市场">红帽新任CEO访华计划拓展中国开源市场</a></li> <li><a href="http://www.systn.com/data/articles/234.html" title="快速实现Apache二级域名的方法">快速实现Apache二级域名的方法</a></li> <li><a href="http://www.systn.com/data/articles/221.html" title="FreeBSD下安装apache2+mysql5+php5">FreeBSD下安装apache2+mysql5+php5</a></li> <li><a href="http://www.systn.com/data/articles/128.html" title="用PEAR Date进行日期时间处理">用PEAR Date进行日期时间处理</a></li> <li><a href="http://www.systn.com/data/articles/243.html" title="Memcached深度分析">Memcached深度分析</a></li> <li><a href="http://www.systn.com/data/articles/241.html" title="PHP Extended CHM 中文手册">PHP Extended CHM 中文手册</a></li> <li><a href="http://www.systn.com/data/articles/225.html" title="六月开发语言排行榜出炉">六月开发语言排行榜出炉</a></li> </ul> </div> <div id="article_right"> <h1><a href="http://www.systn.com/data/news/list_1.html">站内新闻</a></h1> <ul id="article_right_list"> <li><a href="http://www.systn.com/data/news/44.html" title="Ease template 3 发布单核心版本">Ease template 3 发布单核心版本</a></li> <li><a href="http://www.systn.com/data/news/29.html" title="Ease Template E3 正式发布!">Ease Template E3 正式发布!</a></li> <li><a href="http://www.systn.com/data/news/18.html" title="新年休假计划">新年休假计划</a></li> <li><a href="http://www.systn.com/data/news/24.html" title="ET 最新版本发布">ET 最新版本发布</a></li> <li><a href="http://www.systn.com/data/news/20.html" title="健康出院回归程序园">健康出院回归程序园</a></li> <li><a href="http://www.systn.com/data/news/8.html" title="自由社区登场!!!">自由社区登场!!!</a></li> <li><a href="http://www.systn.com/data/news/3.html" title="Ease Template 公布成功案例">Ease Template 公布成功案例</a></li> <li><a href="http://www.systn.com/data/news/12.html" title="Ease template 周末发布新版~">Ease template 周末发布新版~</a></li> <li><a href="http://www.systn.com/data/news/13.html" title="ET 手册将全部更新,并且制作完整示例!">ET 手册将全部更新,并且制作完整示例!</a></li> <li><a href="http://www.systn.com/data/news/40.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.html">赞助支持</a>  |</li> <li><a href="http://www.systn.com/data/contact.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><!-- 更新时间:2011年10月22日 17点08分 -->