首页 > 技术 > 怎样使用Zend_View与Zend_Layout玩布局

怎样使用Zend_View与Zend_Layout玩布局

2010年1月14日

当您打算要使用Zend_Layout时.您需要在你的入口文件(index.php)或是在你需要的控制器里先初始化Zend_Layout,让它和MVC一起使用.
其代码如下:

<?php
//startMvc里面的数组是你指定存放Layout文件的路径
Zend_Layout::startMvc(array(‘layoutPath’ => ROOT_DIR.’/app/views/layouts’));
?>


建立你的Layout模板.
这里就是比较重要的,layout文件模板默认存放的路径是/app/views/layouts下面.当然你也可以自己定义其它的路径,比如说:你可以 在startMvc()里设置为Zend_Layout::startMvc(array(‘layoutPath’ => ROOT_DIR.’/app/views/kylingood/layouts’));注意我这里加了一层kylingood文件夹.所以看你自己喜欢 怎样.
你都可以设置的.. 这个layout文件内容就是把你设计的网站有相同部分,可以重用的内容放在这里..页面代码基本如下(代码内有注解):

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>OOPHP教程,如何使用Zend_Layout</title>
</head>
<body>
<div id=”content”>
<!– 这里页面body内容,这里会变–>
<?php echo $this->layout()->content ?>
</div>
<div id=”sidebar”>
<!– 这里页面侧边内容,可以重用,内容不变–>
<?php echo $this->layout()->sidebar; ?>
</div>
<div id=”footer”>
<!– 这里页面页脚内容,可以重用,内容不变–>
<?php echo $this->layout()->footer; ?>
</div>
</body>
</html>

在控制器里设置你共用代码的内容.
你要在的布局存放你取到的数据或是其它内容时..你就需要设置这个内容.并让它可以在你的View页面呈现也来.这里我们只要做以下步骤:
代码如下(代码内有注解):

<?php
class IndexController extends Zend_Controller_Action
{
//这控制器里调用Layout
function indexAction()
{
$response = $this->getResponse();
//sidebar.phtml,footer.phtml都是
//公共部分.这二个页面分别会替换掉Layout里面的二个变量
// <?php echo $this->layout()->sidebar; ?>
//<?php echo $this->layout()->footer; ?>
//所以我们就可以实现重用…
$response->insert(’sidebar’, $this->view->render(’sidebar.phtml’));
$response->insert(‘footer’, $this->view->render(‘footer.phtml’));
}
?>

但是我们也会遇到一个问题:就是当我们不想只用一个Layout怎么办?或是我想把我现在的页面换一个版形我要怎样做?难不成我要重新再写一次程序.?
不要担心..你只要在你的控制器里写上这代码$this->_helper->layout->setLayout(‘newLayout’);你就可以把你原来的Layout给换掉.
如此一来你的网站就变成另一个版形了…这样是不是很方便啊??呵呵.~~~~

http://www.oophp.cn/article/view/id/210

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
请输入验证码:click to change