ThinkPHP 模板布局

模块继承 {extend name="" /}php

{block name=""}

{/block}
基础模板 base.html

子模板  块区
	在子模板中,能够对基础模板中的区块进行重载定义,若是没有从新定义的话,则表示沿用基础模板中的区

块定义, 若是定义了一个空的区块,则表示删除基础模板中的该区块内容。css

{block}引用模板内容到子模块html

base.html {block name="footer"}底部{/block}app

{block name="footer"} {block}@ThinkPHP 版权全部 {/block} 这一区块中有{block}这个标签,当区块中有这个标记时,就不仅是直接重载这个区块,它表示引用所继承模 板对应区块的内容到这个位置,最终这个区块是合并后的内容。因此这里footer区块最后的内容是: 底部 @ThinkPHP 版权全部框架

在当前子模板中,只能定义区块而不能定义其余的模板内容,不然将会直接忽略,而且只能定义基础模板中 已经定义的区块。布局

一 资源加载 {load href=""} {js href=""} {css href=""}.net

二 使用原生php {php} echo 'hello';{/php}code

注意:php标签或者php代码里面就不能再使用标签(包括普通标签和XML标签)了,所以下面的几种方式都 是无效的: {php}{eq name='name'value='value'}value{/eq}{/php}htm

简而言之,在PHP标签里面不能再使用PHP自己不支持的代码。继承

若是设置了tpl_deny_php 参数为true,就不能在模板中使用原生的PHP代码,可是仍然支持PHP标签输 出

三 定义标签 @1 assign标签在模板中定义变量 {assign name='var' value='123'/} name属性支持系统变量,例如: {assign name="Think.get.id" value="123" /} 表示在模板中给$_GET['id'] 赋值了 123 value属性也支持变量,例如: {assign name="var" value="$val" /} 或者直接把系统变量赋值给var变量,例如: {assign name="var" value="$Think.get.name" /} 至关于,执行了: $var = $_GET['name'];

@2 define定义常量 {define name="MY_DEFINE_NAME" value="3" /} 在运行模板的时候,就会定义一个MY_DEFINE_NAME 的常量。 value属性能够支持变量(包括系统变量),例如: {define name="MY_DEFINE_NAME" value="$name" /} 或者 {define name="MY_DEFINE_NAME" value="$Think.get.name" /}

三 包含文件 @1 当前模板文件包含其余的模板文件 {include file=""/} 包含的模板文件中不能再使用模板布局或者模板继承

@2 使用模版表达式 模版表达式的定义规则为:模块@控制器/操做 {include file="public/header" /} // 包含头部模版header 注意,包含模版文件并不会自动调用控制器的方法,也就是说包含的其余模版文件中的变量赋值须要在当 前操做中完成。

使用模版文件 能够直接包含一个模版文件名(包含完整路径),例如: {include file="../application/view/default/public/header.html" /} 路径以 项目目录/public/ 路径下为起点

二 传入参数 {include file="Public/header" title="$title" keywords="开源WEB开发框架" /}

<head> <title>[title]</title> <meta name="keywords" content="[keywords]" /> </head>

相关文章
相关标签/搜索