ZendFrameWork组件Layout学习笔记(转载)

试图助手可以理解成为控制页面布局,按照这个顺序进行页面的渲染

$this->headLink()

只是生成link标记占位符,例如
< ?php echo $this->headLink()->appendStylesheet(‘/css/global.css’) ?>这样就会生成如下代码
<link href=”/css/global.css” media=”screen” rel=”stylesheet” type=”text/css” >
注意了,如果你使用如下代码:
< ?php echo $this->headLink()->appendStylesheet(‘/css/global.css’) ?>
< ?php echo $this->headLink()?>
这样就会在页面生成
<link href=”/css/global.css” media=”screen” rel=”stylesheet” type=”text/css” >这个代码两次!!(先记下来)
加载css当然也可以这样写
<link href=”<?php echo $this->baseUrl();?>/admin/css/reset.css” rel=”stylesheet” type=”text/css” />

这里又多了一个$this->baseUrl()
这个在新版本中(大概在1.9之后吧,才能直接使用!不然自己定义)
代表的就是public目录在网站根目录位置
比如:/notebook/public

当然$this->headScript()用法就类似headLink()不再说了
还有就是$this->headTitle()函数了,这个用法呢,可以在启动文件
$view->headTitle()->setSeparator(‘-’);//这个就是设置的固定内容和页面title的分割符号
$view->headTitle(‘固定内容’);//设置固定内容
这样在控制器里面
$this->view->headTitle(‘页面标题’, ‘APPEND’);
这样会再生成页面中
<title>后面固定-页面标题</title>
$this->view->headTitle(‘页面标题’, ‘PREPEND’);会成
<title>页面标题-后面固定</title>
需要用共用的顶部和底部文件
那么可以在页面文件夹(application/layouts/scripts),当然你可以在配置文件中配置
resources.layout.layoutPath = APPLICATION_PATH “/layouts/scripts”
这样在application/layouts/scripts下建立一个head.phtml/foot.phtml/default.phtml
default.phtml
内容如下:
< ?php echo $this->render(‘head.phtml’);?>
< ?php echo $this->layout()->content;?>
< ?php echo $this->render(‘foot.phtml’);?>
这里只解释下render函数,就有点类似smarty中的display,就是渲染页面,而这里的render函数也可读取到application/layouts/scripts,如果需要设置不同文件夹进行分类,就带上目录即可
head.phtml内容如下:
< !DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
< meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
< ?php echo $this->headTitle();?>
< link href=”<?php echo $this->baseUrl();?>/admin/css/reset.css” rel=”stylesheet” type=”text/css” />
< ?php echo $this->headLink()->appendStylesheet(‘/css/global.css’) ?>
< ?php echo $this->headLink()?>
< script language=”javascript” type=”text/javascript” src=”<?php echo $this->baseUrl();?>/scripts/jquery-1.7-min.js”></script>
< ?php echo $this->headScript();?>
< /head>
< body>
这是共用的顶部文件
<br>

foot.phtml页面内容如下:
这是底部文件
< /body>
< /html>

而views目录下的scripts目录下index目录下的index.phtml内容如下:
这是页面内容
<br>

这个时候需要制定index模块下的布局按照default.phtml布局
在初始化的时候加上:
$this->_helper->layout->setLayout(‘default’);//注意不要加后缀
这样访问index下的所有方法都是按照这个布局显示

如果分组呢?
提示一下setLayout函数可以读取application/layouts/scripts这个目录
那你就可一将不同的页面分开放置了!

如果这个模块下的一个方法比较独立,那么需要单独布局页面,在方法中加上
$this->_helper->layout()->disableLayout();//即可屏蔽掉页面布局

如果有的模块只是作为中间页面,任何输出都没有的页面需要屏蔽掉渲染可以在方法中加上
$this->_helper->viewRenderer->setNoRender();这样就不需要建立对应的试图文件

添加关键词以及设置网站描述,在控制器方法中添加
$this->view->headMeta ()->appendName ( ‘keywords’, ‘关键词’ );
$this->view->headMeta ()->appendName ( ‘description’, ‘网站描述’ );
然后在视图中就可以使用
< ?php echo $this->headMeta();?>
显示关键词以及网站描述

  1. 暂无评论

  1. 暂无 Trackback

return top