FeiFeiCms影视系统的模板引擎采用ThinkPhp自带的,通常的作法为在用户请求网站操作后,PHP在后台作逻辑与数据的处理,然后将变量定义,系统通过模板引擎的规则加载对应的模板文件。当我们需要UI展示用到的变量时,就将其在网页的具体位置插入该变量。
FeiFeiCms影视系统在开发时除了上述的通常作法外(预先定义系统基础变量,操作基础变量)其它的循环变量基本上是使用函数来调用(ff_mysql_xxxxx),从而做到真正的按需加载,节约服务器资源。
FeiFeiCms影视系统支持多模板主题区换,模板主题放在根目录Tpl下面,如默认的模板主题名称为“default”,则其对应的独立手机模板主题名称为后面加上"_m"后缀(default_m)。
以下为ThinkPhp模板引擎常用方法 - {&var} 输出配置参数
- {.var} 输出GET变量
- {^var} 输出POST变量
- <include file="Home:header" />包含Home文件夹下共用顶部文件
- <include file="Block:nav" />包含Block文件夹下导航区块标签
使用函数 可以是PHP内置函数或者是用户自定义函数。如:
- {$varname|function1|function2=arg1,arg2,### }
- {$webTitle|md5|strtoupper|substr=0,3}
- {$create_time|date="y-m-d",###}
Volist标签 主要用于在模板中循环输出数据集或者多维数组
- <volist name="list" id="feifeicms">
- {$feifeicms.vod_id}
- {$feifeicms.vod_name}
- </volist>
Volist输出偶数记录
- <volist name="list" id="feifeicms" mod="2" >
- <eq name="mod" value="1">{$feifeicms.vod_name}</eq>
- </volist>
Volist输出循环变量
- <volist name="list" id="feifeicms" key="k" >
- {$k}.{$feifeicms.vod_name}
- </volist>
Switch标签模板引擎支持Switch标签,格式为:
- <switch name="变量" >
- <case value="值1">输出内容1</case>
- <case value="值2">输出内容2</case>
- <default />默认情况
- </switch>
比较标签 模板引擎提供了丰富的判断标签,比较标签的用法是:
- <比较标签 name="变量" value="值">内容</比较标签>
系统支持的比较标签以及所表示的含义分别是:
eq 或者 equal:等于
neq 或者notequal:不等于
gt:大于
egt:大于等于
lt:小于
elt:小于等于
heq:恒等于
nheq:不恒等于
比较标签实例
- <eq name="name" value="value">相等<else/>不相等</eq>
- <eq name="vo.name" value="5">{$vo.name}</eq> 二维数组用.分隔
Range标签 Range标签用于判断某个变量是否在某个范围之内,包括in、notin和range三个标签。
可以使用in标签来判断模板变量是否在某个范围内,例如:
- <in name="id" value="1,2,3" >输出内容1</in>
如果判断不再某个范围内,可以使用:
- <notin name="id" value="1,2,3" >输出内容2</notin>
可以把上面两个标签合并成为:
- <in name="id" value="1,2,3" >输出内容1<else/>输出内容2</in>
Empty标签 可以使用empty标签判断模板变量是否为空,例如:
- <empty name="name">name为空值</empty>
- <notempty name="name">name不为空</notempty>
- <empty name="name">name为空<else /> name不为空</empty>
IF标签 我们还可以使用if标签来定义复杂的条件判断
- <if condition="($name eq 1) OR ($name gt 100) "> value1
- <elseif condition="$name eq 2" />value2
- <else /> value3
- </if>
标签嵌套 模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。
系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如:
- <volist name="list" id="vo">
- <volist name="vo['sub']" id="sub">
- {$sub.name}
- </volist>
- </volist>
默认的嵌套层次是3级,所以嵌套层次不能超过3层
使用PHP代码 Php代码可以和标签在模板文件中混合使用
第一种是使用php标签:
- <php>echo 'Hello,world!';</php>
第二种就是直接使用原始的php代码:
- <?php echo 'Hello,world!'; ?>
原样输出 可以使用literal标签来防止模板标签被解析,例如:
- <literal>
- <if condition="$name eq 1 "> value1
- <elseif condition="$name eq 2" />value2
- <else /> value3
- </if>
- </literal>
上面的if标签被literal标签包含,因此if标签里面的内容并不会被模板引擎解析,而是保持原样输出。
模板注释 模板支持注释功能,该注释文字在最终页面不会显示,仅供模板制作人员参考和识别。
- 格式:{/* 注释内容 */ } 或 {// 注释内容 }
飞飞cms官方论坛-www.feifeicms.vip |