类名称:
STemplate,模板解析类
功能:
使用自有语法对模板进行编译
使用说明:
禁止实例化,非单例
依赖:
SFrame,SCache
display($view=null,array $params= [])
显示视图,如果需要,智能编译
开发人员通常使用全局函数display作为快捷入口
recompile()
检查所有模板文件,如需要,则编译
replace($template,array $params= [])
简单模板替换
模板语法
定界符:{ }
注意:不要有多余的空白
同一行内避免 两个标签,有可能会出错.
模板中可使用以下语法,注意:不要有多余的空白
{xml}
输出XML文件头:<?xml version="1.0" encoding="utf-8" >
{upload}
输出上传文件根路径,通常是/upload/
for循环
{for($i=0;$i
{endfor} 或者{/for}
foreach循环
{foreach($arr as$k=>$v)}
{endforeach} 或者{/foreach}
while循环
{while(条件表达式)}
{endwhile} 或者{/while}
if判断
{if($i>5)}
{elseif($i>2)}
{else}
{endif} 或者 {/if}
判断是否是IE浏览器
{ifIE}
{else}
{endif}/{/if}
赋值
{assign($变量=表达式)}
或
{let($变量=表达式)}
嵌套原生代码
{php}
{/php}
子模板包含
{include('子模板',参数数组)}
{js(脚本1,脚本2,...)}
包含一组JS文件
{css(样式文件1,样式文件2,...)}
引入一组样式文件
当变量不存在,或数组元素不存在时,显示默认值
{default($变量/$数组元素,'')}
如果存在则显示
{?}
显示变量的值
{$变量}
{$对象->属性}
{$数组[下标]}
模板注释
{#注释内容}
显示函数返回值
{date('Y-m-dH;i:s')}
注意:既然是函数调用,最后就应该是')'结束
例:{dump($var,'title',true)}
这将显示一个复杂变量的值,此函数请参考相应方法
{MUser::getName($id)}
也可以调用Model的静态方法
多语言翻译
{_('文本内容')}
这将调用全局函数translation()
定义在viewUnit中的静态方法
使用方法
{:方法名(参数表)}
back($url, $title = ''):
显示一个返回列表的按钮
add($url,$title=''):
显示一个新增按钮
crumb(array$list):
显示面包屑,带任意多的参数,格式为名称=>地址或 单独名称
date($config):
显示一个日期控件
discount($now,$old,$pres=1):
计算折扣
money($money):
美化金额
pathCss():
输出样式文件根路径,通常是/static/css/此功能也可简写为{css}
pathJs():
输出脚本文件根路径,通常是/static/js/此功能也可简写为{js}
pathStatic():
输出静态资源所在路径,通常是/static/
pathImg()
输出图片文件根路径,通常是/static/images/,或/static//images/ 此功能也可简写为{img}
pathRoot()
返回根路径,去除最后的斜线
phone($phone)
隐藏手机号码中间三位
seo($page,array$params= [])
生成SEO相关内容
short($v,$len=20)
对超长字符串进行截断
string(array$config)
显示一个不可编辑的文本
submit($title='提交')
显示一个表单提交按钮
table(array$config)
显示一个不可编辑的表格
ver()
获取当前版本号
定义的全局函数
可以使用{函数名(参数表)} 的形式调用全部PHP全局函数,包括框架global中定义的全局函数
以下举例常用的全局函数
dump($vars,$label='',$return=false)
显示变量内容,用于调试
fragment($m,$c,$a,array$params= [],$cached=7200)
显示一个页面片段, 关于页面片段是一个专题
left / mid / datetime/ today/json/urlAppend , 请参考相应函数