模板命名规则
模板目录/模板主题/[分组名/]模块名/操作名+模板后缀
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 | 不恒等于(!==) |