类名称:
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<count($arr);$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 , 请参考相应函数