thinkphp3.2.3关于模板使用之一二
1.包含文件
使用场景:比如我们在编写网页布局的时候,可能每一个网页的头和脚是相同的,此时如果给每一个网页分别设置,未免太麻烦了。此时就可以使用带包含文件。
首先检查配置文件查看我们的主题目录在哪儿,我们可以在核心配置文件中查看:'DEFAULT_THEME'=>'default',所以我的是在默认主题下。就也是说在:
Home/View/default/User下面。
(1)我们首先在default文件夹下面创建两个文件header.html /footer.html,分别为:
header.html
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Strict//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title><block name="title">在此插入标题</block></title>
</head>
<body>
<div id="header">这里是header文件</div>
<hr/>
footer.html
<hr/>
<div id="footer">这里是footer文件</div>
</body>
</html>
(2)然后在使用的时候分别调用就可以了,别如index.html
<include file='Public/header' />
成功了
<include file='Public/footer' />
2.模板继承
使用上面所述的文件包含方法发现,每一个网页的<title></title>的值是相同的,显然是不合适的。那如何解决呢?这就使用到了模板继承
(1)首先在Public/目录下创建一个basic.html,内容如下(这是基本的网页框架)
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Strict//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title><block name="title">在此插入标题</block></title>
</head>
<body>
<include file="Public/header"/><!--将header.html文件内容包含-->
<block name="main"></block><!--将footer.html文件内容包含-->
<include file="Public/footer"/>
</body>
</html>
(2)此时还需要改变header.html,footer.html的内容(因为基础文件basic.html中已经包含了网页基础公共部分)
header.html
<div id="header">这里是header文件</div>
<hr/>
footer.html
<hr/>
<div id="footer">这里是footer文件</div>
(3)使用方法index.html/select.html
index.html
<extend name="Public/basic.html">
<block name="title">index的头标题</block>
<block>网页主题内容(即body体中的内容)</block>
select.html
<extend name="Public/basic.html">
<block name="title">select.html的头标题</block>
<block>网页主题内容(即body体中的内容)</block>
3.模板布局
ThinkPHP 的模版引擎内置了布局模版功能支持,可以方便实现模版布局以及布局嵌套功能。有三种布局方式:
在PUblic/下面创建一个layout.html文件
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Strict//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>在此插入标题</title>
</head>
<body>
<include file="Public/header"/>
{__CONTENT__}
<include file="Public/footer"/>
</body>
</html>
(1)全局配置方式
a.首先我们需要配置核心配置文件config.php
//开启模版布局功能,并指定基础页
'LAYOUT_ON'=>true,
'LAYOUT_NAME'=>'Public/layout',
b.此时当我们在View/User/下任意新建一个HTML文件时就会使用到这个layout.html网页模板
(2)如果我们不想开启模板配置功能,仅仅在本网页使用默认模板,就可以使用标签模式了
//子模版引入模版基页
<layout name="Public/layout" />
(3)layout控制布局
这个方法是直接在控制器中使用
UserController.class.php
//引入指定基页
public function index() {
layout('Public/layout');
//layout(false); //关闭
}
thinkphp3.2.3关于模板使用之一二的更多相关文章
- Thinkphp3.2中的模板继承
1:模板继承: 是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比 类的继承一样,模板也可以定义一个基础模板( ...
- thinkphp3.2中在模板页面使用运算符
首先要明确的是,ThinkPHP 内置模板引擎支持在模板中使用算术运算符(+.-.*./ 和 %),例子: public function index(){ $x = 1; $y = 2; $z = ...
- 解决thinkPHP3.2.3使用Smarty模板后无法使用系统常量问题
https://blog.csdn.net/u014520745/article/details/52029411 在ThinkPHP/Library/Think/View.class.php 输出模 ...
- ThinkPHP3.2.3整合smarty模板(二)
前言:继ThinkPHP3.2.3整合smarty模板(一)之后,继续来探讨一下tp框架整合smarty模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...
- thinkphp3.2.3模板渲染支持三元表达式
thinkphp3.2.3模板渲染支持三元表达式 {$status?'正常':'错误'} {$info['status']?$info['msg']:$info['error']} 注意:三元运算符中 ...
- ThinkPHP3.2.3整合smarty模板(一)
一.php模板引擎有哪些? 1.1 PHPLIB:一套古老且主流的模板引擎,直接在html中使用PHP变量进行编程: 1.2 Template Blocks:一款轻巧且速度非常快的PHP模板引擎,支持 ...
- FreeMarker 一二事 - 静态模板结合spring展示
freemarker可以脱离web使用 前一篇文章使用了普通的方法 这回说说结合spring pom额外引入这个jar包 <dependency> <groupId>org.s ...
- FreeMarker 一二事 - 静态模板的使用与生成
如今前后端分离,动静分离 使用freemarker实现动静分离,nginx处理静态资源文件,提高效率 加载jar包 <!-- freemarker --> <dependency&g ...
- thinkphp3.2.3使用ajax 的一些坑——使用AjaxReturn()后,直接返回null,模板文件不起作用
从接触thinkphp到今天,填完此坑,必有其他的坑有会冒出来.哎!这个填坑之路我想是没有尽头的了. 最近,需要使用ajax完成一些操作,一开始想Ajax简单啊,不过是一种提交数据的方式,不过是害苦了 ...
随机推荐
- 在 Azure HDInsight 中安装和使用 Spark
Spark本身用Scala语言编写,运行于Java虚拟机(JVM).只要在安装了Java 6以上版本的便携式计算机或者集群上都可以运行spark.如果您想使用Python API需要安装Python解 ...
- 第16章 List集合的总结和遍历
第16章 List集合的总结和遍历 1.重构设计 根据Vector类,ArrayList类,和LinkedList类所具有的存储特点以及拥有的方法入手,发现共性往上抽取. 共同特点: 1.允许元素重复 ...
- sql left join on
select sysuser.userid, sysuser.groupid, sysuser.sysid, nvl( userjd.mc,nvl(useryy.m ...
- linux 代码分析工具 gprof - 以wpa_supplicant为例
当我们遇到一个新的程序的时候,经常会无从下手,需要debug一个功能的时候,我们不知道函数的运行流程是怎么样的,这就需要借助工具来帮助我们加快流程了.这里以分析wpa_supplicant为例 ...
- C# 对 App.config的appSettings节点数据进行加密
.NET平台下的Winform和Asp.net的配置文件默认都是明文保存的,本文使用的是.Net自身如何加密配置文件,不包含自定义的加密规则 但.Net是提供了直接对配置文件加密的功能的,使用.Net ...
- Linux实现https方式访问站点
超文本传送协议(HyperText Transfer Protocol,HTML)是一种通信协议,它允许将超文本标记语言文档从web服务器传送到wel浏览器. HTML的特点: 1.支持客户/服务器模 ...
- Asp.Net MVC<三> : ASP.NET MVC 基本原理及项目创建
MVC之前的那点事儿系列 解读ASP.NET 5 & MVC6系列 MVC模拟(摘自ASP.NET MVC5框架揭秘) Asp.net中,通过HttpModule的形式定义拦截器,也就是路由表 ...
- requestAnimationFrame,Web中写动画的另一种选择
HTML5/CSS3时代,我们要在web里做动画选择其实已经很多了: 你可以用CSS3的animattion+keyframes; 你也可以用css3的transition; 你还可以用通过在canv ...
- java学习流程
J2SE 面向对象-封装.继承.多态内存的分析递归集合类.泛型.自动打包与解包.Annotation IO 多线程.线程同步 TCP/UDP AWT.事件模型.匿名类 正则表达式反射机制 2:数据库( ...
- HTML+CSS知识点总结
转自:http://blog.csdn.net/qiushi_1990/article/details/40260447?utm_source=tuicool&utm_medium=refer ...