模块继承 {extend name="" /}
{block name=""}
{/block}
基础模板 base.html
子模板 块区
在子模板中,可以对基础模板中的区块进行重载定义,如果没有重新定义的话,则表示沿用基础模板中的区
块定义, 如果定义了一个空的区块,则表示删除基础模板中的该区块内容。
{block}引用模板内容到子模块
base.html {block name="footer"}底部{/block}
{block name="footer"} {block}@ThinkPHP 版权所有 {/block} 这一区块中有{block}这个标签,当区块中有这个标记时,就不只是直接重载这个区块,它表示引用所继承模 板对应区块的内容到这个位置,最终这个区块是合并后的内容。所以这里footer区块最后的内容是: 底部 @ThinkPHP 版权所有
在当前子模板中,只能定义区块而不能定义其他的模板内容,否则将会直接忽略,并且只能定义基础模板中 已经定义的区块。
一 资源加载 {load href=""} {js href=""} {css href=""}
二 使用原生php {php} echo 'hello';{/php}
注意:php标签或者php代码里面就不能再使用标签(包括普通标签和XML标签)了,因此下面的几种方式都 是无效的: {php}{eq name='name'value='value'}value{/eq}{/php}
简而言之,在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开发框架" /}
[title]