飞飞CMS官方论坛

FeiFeiCms官方发布_【电视TV版系统】 通过这个窗口,关注跟踪我们的研发进展 飞飞CMS开发手册 - 飞飞官方论坛说明

FeiFeiCms官方发布_【商业版_V15系统】 功能强大,终身免费升级,建站不二选择 模板展示中心 - 飞飞免费版与收费版介绍

飞飞cms影视系统_免费版8.1正式版【官方下载】 程序开源,视频管理系统PHP版,5分钟快速建站 销售QQ:1306428988 - TG:@feifeicms520

0 4076

飞飞影视系统(模板引擎)设计结构与说明

linchang260z 于2020-1-3 16:04:22发表 显示全部楼层
收藏

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by  © 2006-2024 飞飞网络科技有限公司,官方销售QQ:1306428988 或加Telegram: feifeicms520

手机版  |  飞飞CMS官方论坛 ( 鄂ICP备14015395号-2

立刻咨询
快速回复 返回顶部 返回列表