飞飞CMS官方论坛

标题: 飞飞影视系统(模板引擎)设计结构与说明 [打印本页]

作者: linchang260z    时间: 2020-1-3 16:04
标题: 飞飞影视系统(模板引擎)设计结构与说明

FeiFeiCms影视系统的模板引擎采用ThinkPhp自带的,通常的作法为在用户请求网站操作后,PHP在后台作逻辑与数据的处理,然后将变量定义,系统通过模板引擎的规则加载对应的模板文件。当我们需要UI展示用到的变量时,就将其在网页的具体位置插入该变量。



FeiFeiCms影视系统在开发时除了上述的通常作法外(预先定义系统基础变量,操作基础变量)其它的循环变量基本上是使用函数来调用(ff_mysql_xxxxx),从而做到真正的按需加载,节约服务器资源。



FeiFeiCms影视系统支持多模板主题区换,模板主题放在根目录Tpl下面,如默认的模板主题名称为“default”,则其对应的独立手机模板主题名称为后面加上"_m"后缀(default_m)。


以下为ThinkPhp模板引擎常用方法


使用函数 可以是PHP内置函数或者是用户自定义函数。如:



Volist标签 主要用于在模板中循环输出数据集或者多维数组



Volist输出偶数记录



Volist输出循环变量



Switch标签模板引擎支持Switch标签,格式为:



比较标签 模板引擎提供了丰富的判断标签,比较标签的用法是:



系统支持的比较标签以及所表示的含义分别是:
eq 或者 equal:等于
neq 或者notequal:不等于
gt:大于
egt:大于等于
lt:小于
elt:小于等于
heq:恒等于
nheq:不恒等于

比较标签实例



Range标签 Range标签用于判断某个变量是否在某个范围之内,包括in、notin和range三个标签。
可以使用in标签来判断模板变量是否在某个范围内,例如:



如果判断不再某个范围内,可以使用:



可以把上面两个标签合并成为:



Empty标签 可以使用empty标签判断模板变量是否为空,例如:



IF标签 我们还可以使用if标签来定义复杂的条件判断



标签嵌套 模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。
系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如:



默认的嵌套层次是3级,所以嵌套层次不能超过3层
使用PHP代码 Php代码可以和标签在模板文件中混合使用
第一种是使用php标签:



第二种就是直接使用原始的php代码:



原样输出 可以使用literal标签来防止模板标签被解析,例如:



上面的if标签被literal标签包含,因此if标签里面的内容并不会被模板引擎解析,而是保持原样输出。
模板注释 模板支持注释功能,该注释文字在最终页面不会显示,仅供模板制作人员参考和识别。








欢迎光临 飞飞CMS官方论坛 (http://bbs.feifeicms.wang/) Powered by Discuz! X3.2