## 模版标签
[TOC]
### jsconst 标签
将 PHP 常量创建 JavaScript 变量
~~~
<jsconst/>
~~~
### literal 不解析标签(原样输出标签)
literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息。
~~~
<literal>
<list from="$data">
内容1234
</list>
</literal>
~~~
### foreach 标签
与 PHP 中的 foreach 使用方法一致
语法
~~~
<foreach from='变量' key='键名' value='键值'>
内容
</foreach>
~~~
基本使用
~~~
<foreach from='$user' key='$key' value='$value'>
{$value|strtoupper}
</foreach>
~~~
多重嵌套
~~~
<foreach from='$user' key='$key' value='$value'>
<foreach from='$value' key='$n'value='$m'>
{$m}
</foreach>
</foreach>
~~~
### list 标签
语法
~~~
<list from='变量' name='值' row='显示行数' empty='为空时显示内容'>
内容
</list>
~~~
*基本使用*
~~~
<list from='$data' name='d' row='10' start="0" empty='没有数据 '>
{$d.cname}
</list>
~~~
*表示每次间隔 条数据输出*
~~~
<list from='$row' name='n' step='2'>
{$n.title}
</list>
~~~
*从第 条数据开始显示*
~~~
<list from='$row' name='n' start='2'>
{$n.title}
</list>
~~~
*与其他标签使用*
~~~
<list from='$data' name='n'>
<if value='$took.list.n.first'>
{$took.list.n.index}: 这是第一条记录 <br/>
<elseif value='$took.list.n.last'/>
{$took.list.n.index}: 最后一条记录 <br/>
<else/>
{$took.list.n.index}:{$n.title} <br/>
</if>
</list>
共有 :{$took.list.n.total} 条
~~~
~~~
$took.list.n.first 是否为第1条记录
$took.list.n.last 是否为最后一条记录
$took.list.n.total 总记录数
$took.list.n.index 当前循环是第几条
~~~
*其中 n 为 标签的 name 属性值*
### if 标签
语法
~~~
<if value='条件'>
内容
</if>
~~~
为了兼容,也可用condition作为条件
~~~
<if condition='条件'>
内容
</if>
~~~
基本使用
~~~
<if value="$webname eq 'baidu'">
百度
</if>
~~~
与 else 结合使用
~~~
<if value='$webname eq "baidu''>
百度
<elseif value='$webname eq "google"'/>
谷歌
<else/>
其他网站
</if>
~~~
### empty 标签
例
~~~
<empty value='$config.dbname'>
不存在值时显示的内容
</empty>
<empty value='$config.dbname'>
不存在值时显示的内容
<else/>
存在值时显示的内容
</empty>
~~~
### notempty 标签
例
~~~
<notempty value='$config.dbname'>
存在值时显示的内容
</notempty>
<notempty value='$config.dbname'>
存在值时显示的内容
<else/>
值为空时显示的内容
</notempty>
~~~
### php 标签
模版中直接使用 `<?php ...?>`
### js 标签
引入 JavaScript 文件,路径中可使用所有 URL 常量
~~~
<js file='__CONTROLLER_VIEW__/Js/js.js'/>
~~~
### css 标签
引入 CSS 文件 ,路径中可使用所有 URL 常量
~~~
<css file='__CONTROLLER_VIEW__/Css/css.css'/>
~~~
### include 标签
加载模板文件使用
~~~
<include file='文件路径'/>
~~~
示例
~~~
<include file='__PUBLIC__/head.html'/>
~~~
上面的标签会加载模板目录下 public 目录下的 head.html 文件
**路径说明**
~~~
比如当前模块:Home,当前控制器:User,当前方法:add
<include file='header'/>
说明:上面为普通路径,会解析成模板: Application/Home/View/User/header.html
<include file='Public/header'/>
说明:上面为普通路径,会解析成模板: Application/Home/View/User/Public/header.html
<include file='../Public/header'/>
说明:上面为普通路径,会解析成模板: Application/Home/View/Public/header.html
<include file='#Public/header#'/>
说明:上面#与#之间的路径会解析成模板: Application/Home/View/Public/header.html
<include file='#Common:Public/header#'/>
说明:上面#与#之间的路径会解析成模板: Application/Common/View/Public/header.html
<include file='#Common:Public/nav#,#Public/header#'/>
说明:上面将同时加载两个模板文件(多个文件之间用逗号隔开):
Application/Common/View/Public/nav.html
和
Application/Home/View/Public/header.html
~~~
### switch标签
用法:
~~~
<switch name="变量" >
<case value="值1" break="0或1">输出内容1</case>
<case value="值2">输出内容2</case>
<default />默认情况
</switch>
~~~
使用方法如下:
~~~
<switch name="User.level">
<case value="1">value1</case>
<case value="2">value2</case>
<default />default
</switch>
~~~
其中name属性可以使用函数以及系统变量,例如:
~~~
<switch name="took.get.userId|abs">
<case value="1">admin</case>
<default />default
</switch>
~~~
对于case的value属性可以支持多个条件的判断,使用”|”进行分割,例如:
~~~
<switch name="took.get.type">
<case value="gif|png|jpg">图像格式</case>
<default />其他格式
</switch>
~~~
表示如果$_GET["type"] 是gif、png或者jpg的话,就判断为图像格式。
case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:
~~~
<switch name="took.get.userId|abs">
<case value="1" break="0">admin</case>
<case value="2">admin</case>
<default />default
</switch>
~~~
也可以对case的value属性使用变量,例如:
~~~
<switch name="User.userId">
<case value="$adminId">admin</case>
<case value="$memberId">member</case>
<default />default
</switch>
~~~
### assign标签
assign标签用于在模板文件中赋值变量,用法如下:
~~~
<assign name="var" value="123" />
~~~
在运行模板的时候,赋值了一个var的变量,值是123。
相当于,执行了:
~~~
$var = '123';
~~~