模板命名规则



    1. 模板目录/模板主题/[分组名/]模块名/操作名+模板后缀
    2. Tpl/default/Index/index.html

    模板赋值和输出


    1. // 使用assign方法
    2. $this->assign('name',$value);
    3. // 或者下面的写法:
    4. $this->name = $value;
    5. //输出当前模块当前操作模板
    6. $this->display();
    7. //输出当前模块其他操作模板
    8. $this->display('user');//输出其他模块操作模板
    9. $this->display('Member:read');
    10. //输出其他主题操作模板
    11. $this->display('xp@Member:read');
    12. //直接全路径输出模板(注意该路径是相对于项目入口文件 index.php 的路径)
    13. $this->display('./Tpl/default/Index/index.html');
    14. //指定页面编码
    15. $this->display('Member:read','gbk');
    16. //输出 xml 格式模板并定义页面编码为 utf-8
    17. $this->display('Member:read','utf-8','text/xml');

    模板变量和模板文件的导入


    1. {$var}
    2. 输出变量
    3. {$var['name']}
    4. 输出数组变量
    5. {$var:name}
    6. 输出对象变量
    7. {$var.name}
    8. 自动判断数组或者是对象
    9. {$var|default="some"}
    10. 指定默认值
    11. {$var|fun1|fun2|...|funX=param1,param2...,paramX, ###}
    12. 多个函数调用,从左往右执行函数,###是传入函数变量替代符号
    13. {$webTitle|md5|strtoupper|substr=0,3}
    14. echo substr(strtoupper(md5($webTitle)),0,3);
    15. {$userinfo["regdate"]|date="Y-m-d H:i",###}
    16. echo date("y-m-d H:i",$userinfo["regdate"]|);
    17. {:fun(param)}
    18. 输出执行函数
    19. {~fun(param)}
    20. 执行函数
    21. {$Think.session.session_id}
    22. {$_SESSION.session_id}
    23. 系统变量的输出,这里支持的系统变量为
    24. serversessionpostgetrequestcookieenv
    25. {$Think.const.CONST_VAR}
    26. {$Think.CONST_VAR}
    27. 输出系统常量
    28. {$Think.config.DB_PREFIX}
    29. 系统配置输出
    30. 快捷输出,为了模板的可读性,不建议使用快捷输出
    31. {@var} {$Think.session.var} 等效,输出 Session 变量
    32. {#var} {$Think.cookie.var} 等效,输出 Cookie 变量
    33. {&var} {$Think.config.var} 等效,输出配置参数
    34. {%var} {$Think.lang.var} 等效,输出语言变量
    35. {.var} {$Think.get.var} 等效,输出 GET 变量
    36. {^var} {$Think.post.var} 等效,输出 POST 变量
    37. {*var} {$Think.const.var} 等效,输出常量
    38. {include:rule}
    39. <include file="rule"/>标签
    40. 包含当前模块的其他操作模板
    41. 包含其他模块的操作模板
    42. 包含其他主题的模块的操作模板
    43. 使用完整模板文件名来调用模板,使用相对路径是基于项目入口文件位置
    44. $tplName可以使用变量
    45. <import type='type' file="file1,file2,..." basepath="/basepath" />
    46. 例子中导入的 js 文件就是网站根目录下的 Common/js/common.js 文件
    47. <load href="/Public/css/style.css" />
    48. <load href="/Public/js/common.js" />
    49. 使用load加载外部的js或者css文件
    1. <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:循环输出数据集或者多维数组

    1. <volist name="list" id="vo" offset="5" length="10" mod="2" key="k" >
    2. 数组key:{$key}
    3. 用 户 名:{$vo['username']}<br />
    4. 电子邮件:{$vo['email']}<br />
    5. 注册时间:{$vo['regdate']|date="Y-m-d H:i",###}
    6. </volist>
    7. name:
    8. 指定模板的赋值变量
    9. id:
    10. 表示循环变量,不得与name冲突
    11. offset:
    12. 数据指针(5代表第五条数据)
    13. length:
    14. 就的数据条数
    15. mod:
    16. 循环频率
    17. 使用标签来指定循环mod的值,mod名称不可更改
    18. key:
    19. 指定循环的次数
    20. $key:指定循环的数组的索引

    foreach:对对象进行遍历输出

    1. <foreach name="list" id="vo">
    2. 用 户 名:{$vo.username}<br />
    3. 电子邮件:{$vo.email}<br />
    4. 注册时间:{$vo.regdate|date="Y-m-d H:i",###}
    5. </foreach>

    属性同volist

    switch:判断输出

    1. <switch name="name">
    2. <case value="$value">管理员</case>
    3. <default />群众
    4. </switch>

    name:
    1.指定的变量名称,没有$符号
    2.变量,支持使用函数进行操作
    $value:
    1.直接量
    2.变量
    3.多选变量 a|b|c
    default:
    默认输出的值

    比较标签:

    1. <type name="var" value="value">out</type>
    比较标签 PHP对应说明
    eq 等于(==)
    neq 不等于(!=)
    gt 大于(>)
    egt 大于等于(>=)
    lt 小于(<)
    elt 小于等于(<=)
    heq 恒等于(===)
    nheq 不恒等于(!==)

    检测变量赋值标签

    1. <present name="value">变量已经赋值</present>
    2. <notpresent name="username">变量还没有赋值</notpresent>

    检测常量是否被赋值

    1. <defined name="SITE_NAME">网站名称:{*SITE_NAME}</defined>
    2. <notdefined name="SITE_NAME">SITE_NAME 常量没有定义</notdefined>

    检测变量是否为空

    1. <empty name="username">username 为空值</empty>
    2. <notempty name="username">username 不为空</notempty>

    判断变量范围

    1. <in name="变量名" value="值1,值2,...">要输出的内容</in>
    2. <notin name="groupId" value="1,2,3">非管理群组</notin>

    if标签

    1. <if condition="expr1">输出的内容1
    2. <elseif condition="expr2" />输出的内容2
    3. <else />输出的内容3
    4. </if>

    expr:
    1.单个表达式
    2.多重表达式,使用or eq and等等判断符号
    3.condition可以直接支持php函数

    比较标签 说明
    eq 等于(==)
    neq 不等于(!=)
    gt 大于(>)
    egt 大于等于(>=)
    lt 小于(<)
    elt 小于等于(<=)
    heq 恒等于(===)
    nheq 不恒等于(!==)