模板命名规则
模板目录/模板主题/[分组名/]模块名/操作名+模板后缀Tpl/default/Index/index.html
模板赋值和输出
// 使用assign方法$this->assign('name',$value);// 或者下面的写法:$this->name = $value;//输出当前模块当前操作模板$this->display();//输出当前模块其他操作模板$this->display('user');//输出其他模块操作模板$this->display('Member:read');//输出其他主题操作模板$this->display('xp@Member:read');//直接全路径输出模板(注意该路径是相对于项目入口文件 index.php 的路径)$this->display('./Tpl/default/Index/index.html');//指定页面编码$this->display('Member:read','gbk');//输出 xml 格式模板并定义页面编码为 utf-8$this->display('Member:read','utf-8','text/xml');
模板变量和模板文件的导入
{$var}输出变量{$var['name']}输出数组变量{$var:name}输出对象变量{$var.name}自动判断数组或者是对象{$var|default="some"}指定默认值{$var|fun1|fun2|...|funX=param1,param2...,paramX, ###}多个函数调用,从左往右执行函数,###是传入函数变量替代符号{$webTitle|md5|strtoupper|substr=0,3}echo substr(strtoupper(md5($webTitle)),0,3);{$userinfo["regdate"]|date="Y-m-d H:i",###}echo date("y-m-d H:i",$userinfo["regdate"]|);{:fun(param)}输出执行函数{~fun(param)}执行函数{$Think.session.session_id}{$_SESSION.session_id}系统变量的输出,这里支持的系统变量为server、session、post、get、request、cookie、env{$Think.const.CONST_VAR}{$Think.CONST_VAR}输出系统常量{$Think.config.DB_PREFIX}系统配置输出快捷输出,为了模板的可读性,不建议使用快捷输出{@var} 与 {$Think.session.var} 等效,输出 Session 变量{#var} 与 {$Think.cookie.var} 等效,输出 Cookie 变量{&var} 与 {$Think.config.var} 等效,输出配置参数{%var} 与 {$Think.lang.var} 等效,输出语言变量{.var} 与 {$Think.get.var} 等效,输出 GET 变量{^var} 与 {$Think.post.var} 等效,输出 POST 变量{*var} 与 {$Think.const.var} 等效,输出常量{include:rule}<include file="rule"/>标签包含当前模块的其他操作模板包含其他模块的操作模板包含其他主题的模块的操作模板使用完整模板文件名来调用模板,使用相对路径是基于项目入口文件位置$tplName可以使用变量<import type='type' file="file1,file2,..." basepath="/basepath" />例子中导入的 js 文件就是网站根目录下的 Common/js/common.js 文件<load href="/Public/css/style.css" /><load href="/Public/js/common.js" />使用load加载外部的js或者css文件
<br />**模板公共变量/特殊字符**
显示当前的模板
使用当前Action下的
../Public:
当前项目的公共模板目录
/framework/thinkphp2.2/myApp/Tpl/default/Public
PUBLIC:
当前网站的公共目录
/framework/thinkphp2.2/Public
TMPL:
项目的模板目录
/framework/thinkphp2.2/myApp/Tpl/default/
ROOT:
当前网站的地址(不含域名)
/framework/thinkphp2.2
APP:
当前项目的 URL 地址(不含域名)
/framework/thinkphp2.2/newApp.php
URL:
当前模块的 URL 地址(不含域名)
/framework/thinkphp2.2/newApp.php/Index
ACTION:
当前操作的 URL 地址(不含域名)
/framework/thinkphp2.2/newApp.php/Index/index
SELF:
当前的页面 URL
/framework/thinkphp2.2/newApp.php
模板标签
volist:循环输出数据集或者多维数组
<volist name="list" id="vo" offset="5" length="10" mod="2" key="k" >数组key:{$key}用 户 名:{$vo['username']}<br />电子邮件:{$vo['email']}<br />注册时间:{$vo['regdate']|date="Y-m-d H:i",###}</volist>name:指定模板的赋值变量id:表示循环变量,不得与name冲突offset:数据指针(5代表第五条数据)length:就的数据条数mod:循环频率使用标签来指定循环mod的值,mod名称不可更改key:指定循环的次数$key:指定循环的数组的索引
foreach:对对象进行遍历输出
<foreach name="list" id="vo">用 户 名:{$vo.username}<br />电子邮件:{$vo.email}<br />注册时间:{$vo.regdate|date="Y-m-d H:i",###}</foreach>
属性同volist
switch:判断输出
<switch name="name"><case value="$value">管理员</case><default />群众</switch>
name:
1.指定的变量名称,没有$符号
2.变量,支持使用函数进行操作
$value:
1.直接量
2.变量
3.多选变量 a|b|c
default:
默认输出的值
比较标签:
<type name="var" value="value">out</type>
| 比较标签 | PHP对应说明 |
|---|---|
| eq | 等于(==) |
| neq | 不等于(!=) |
| gt | 大于(>) |
| egt | 大于等于(>=) |
| lt | 小于(<) |
| elt | 小于等于(<=) |
| heq | 恒等于(===) |
| nheq | 不恒等于(!==) |
检测变量赋值标签
<present name="value">变量已经赋值</present><notpresent name="username">变量还没有赋值</notpresent>
检测常量是否被赋值
<defined name="SITE_NAME">网站名称:{*SITE_NAME}</defined><notdefined name="SITE_NAME">SITE_NAME 常量没有定义</notdefined>
检测变量是否为空
<empty name="username">username 为空值</empty><notempty name="username">username 不为空</notempty>
判断变量范围
<in name="变量名" value="值1,值2,...">要输出的内容</in><notin name="groupId" value="1,2,3">非管理群组</notin>
if标签
<if condition="expr1">输出的内容1<elseif condition="expr2" />输出的内容2<else />输出的内容3</if>
expr:
1.单个表达式
2.多重表达式,使用or eq and等等判断符号
3.condition可以直接支持php函数
| 比较标签 | 说明 |
|---|---|
| eq | 等于(==) |
| neq | 不等于(!=) |
| gt | 大于(>) |
| egt | 大于等于(>=) |
| lt | 小于(<) |
| elt | 小于等于(<=) |
| heq | 恒等于(===) |
| nheq | 不恒等于(!==) |
