前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZendFrameWork组件Layout学习笔记

ZendFrameWork组件Layout学习笔记

作者头像
苦咖啡
发布2018-05-07 17:54:44
8660
发布2018-05-07 17:54:44
举报
文章被收录于专栏:我的博客

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

$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();?> 显示关键词以及网站描述

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012年11月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档