Appearance
官方文档 
过滤器 
过滤器在视图层对数据进行处理,如时间戳转换,小数的位数处理,字符串截取等
过滤器和数据以 | 隔开, 可以链式写法,多次调用
调用代码 
{{ courseSet.title|default('标题')|plain_text(30) }}对课程标题进行过滤,为空则显示 '标题',超出30字,截取30个字符。
EduSoho过滤器 
- smart_time
 - date_format
 - remain_time
 - trans
 - file_size
 - plain_text
 - duration
 - duration_text
 - chr
 - score_text
 - purify_and_trim_html
 - copyright_less
 - space2nbsp
 - number_to_human
 
函数 
函数一般用于一些逻辑计算,获值。
- fileurl
 - filepath
 - lazy_img
 - avatar_path
 - setting
 - percent
 - upload_max_filesize
 - is_plugin_installed
 - plugin_version
 - upload_token
 - countdown_time
 - convert_ip
 - user_account
 - blur_phone_number
 - blur_idcard_number
 - order_payment
 - crontab_next_executed_time
 - finger_print
 - get_parameters_from_url
 - timestamp
 - get_user_vip_level
 - route_exsit
 - is_micro_messenger
 - plugin_update_notify
 - is_show_mobile_page
 - is_mobile_client
 - select_options
 - radios
 - checkboxs
 - dict
 - dict_text
 
smart_time 
描述
返回与当前时间的 时间差
示例
设当前时间是 1501200065
该话题于 {{ 1501200060|smart_time }} 创建
该课程于 {{ 1501200000|smart_time }} 创建以上会输出:
该话题于 5秒前 创建
该课程于 一分钟前 创建date_format 
描述
格式化本地日期和时间,并返回已格式化的日期字符串。作用等同于php date函数
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
format | 否 | http://php.net/manual/zh/function.date.php | 
示例
{{ 1501234607|date_format }}
{{ 1501234607|date_format('y.m.d') }}
{{ 1501234607|date_format('Y-m-d H:i:s') }}以上会输出:
2017-07-28 17:36
17.07.28
2017-07-28 17:36:47remain_time 
描述
返回剩余时间
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
timeType | 否 | 参数项: day | 
trans 
描述
国际化,根据key翻译输出。翻译文件在
app/Resources/translations/file_size 
描述
返回文件大小,单位为B, KB, MB, GB
plain_text 
描述
返回截取后的字符串
参数
- length 可选
 
示例
{{ 'php基础课程-基本语法'|plain_text(5) }}以上会输出:
php基础...duration 
描述
返回带有没有单位的时间,以分秒的形式
示例
{{ 65|duration }}以上会输出:
01:05duration_text 
描述
返回带有单位的时间
示例
{{ 65|duration_text }}以上会输出:
1分5秒chr 
描述
等同于php函数 chr
score_text 
描述
将数字保留一位小数,转化成字符串
purify_and_trim_html 
描述
对带有html的字符串进行安全过滤
copyright_less 
描述
过滤掉 edusoho字符串,去除edusoho版权
space2nbsp 
描述
将空格替换成
示例
{{ 课程 班级|space2nbsp }}以上会输出:
课程 班级number_to_human 
描述
将数字转化成有单位的,单位: 千,万,亿
示例
{{ 100|number_to_human }}
{{ 1001|number_to_human }}
{{ 10001|number_to_human }}
{{ 100000001|number_to_human }}以上会输出:
100
1千
1万 
1亿fileurl 
描述
返回绝对的路径
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
path | 是 | 文件路径 | 
defaultKey | 否 | 默认显示的图片 | 
filepath 
描述
返回相对路径
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
path | 是 | 文件路径 | 
defaultKey | 否 | 默认显示的图片 | 
lazy_img 
描述
返回符合懒加载格式的img标签
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
src | 是 | img标签路径 | 
class | 否 | img标签的样式类 | 
alt | 否 | img标签描述 | 
img | 否 | 懒加时显示的默认图片 | 
avatar_path 
描述
返回用户的头像路径
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
user | 是 | 用户对象 | 
type | 否 | 头像大小 参数项: small,middle,large | 
setting 
描述
根据name,返回setting表对应的数据
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
name | 是 | |
default | 否 | 默认数据 | 
percent 
描述
计算百分比
参数
number 必填 分子 total 必填 分母
| 字段 | 是否必填 | 描述 | 
|---|---|---|
number | 是 | 分子 | 
total | 是 | 分母 | 
示例
{{ percent(12,51) }}
{{ percent(12,0) }}
{{ percent(51,0) }}以上会输出:
23%
0% 
0%upload_max_filesize 
描述
返回文件上传的最大值
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
formated | 是 | 布尔值 | 
示例
{{ upload_max_filesize() }}
{{ upload_max_filesize(false) }}以上会输出:
1.0GB 
1073741824is_plugin_installed 
描述
插件是否安装
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
code | 是 | 
plugin_version 
描述
返回插件版本号
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
code | 是 | 
upload_token 
描述
返回文件上传的token
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
group | 是 | 上传分类,对应不同的目录存储 | 
type | 否 | 上传类型 | 
countdown_time 
描述
返回 包含天,小时,分,秒的倒计时对象
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
value | 是 | 时间戳 | 
示例
{{ dump(countdown_time(12222222222)) }}以上会输出:
array(4) {
  ["days"]=>
  int(124083)
  ["hours"]=>
  int(18)
  ["minutes"]=>
  int(42)
  ["seconds"]=>
  int(10)
}convert_ip 
描述
返回 ip所属的地址
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
ip | 是 | 
user_account 
描述
返回 用户的账户信息
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
userId | 是 | userId | 
blur_phone_number 
描述
模糊手机号码,中间4位以 **** 显示
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
phoneNum | 是 | 手机号 | 
blur_idcard_number 
描述
模糊身份证号码,中间12位以 ************ 显示
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
idcardNum | 是 | 身份证号码 | 
order_payment 
描述
返回订单的支付方式
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
order | 是 | 订单对象 | 
default | 否 | 默认显示的值 | 
crontab_next_executed_time 
描述
返回定时任务下次执行时间
getFingerprint 
描述
返回用户指纹信息
getParametersFromUrl 
描述
返回url里的参数
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
url | 是 | 链接地址 | 
timestamp 
描述
返回当前时间戳
get_user_vip_level 
描述
返回用户的会员信息
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
userId | 是 | 用户ID | 
route_exsit 
描述
路由是否存在
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
name | 是 | 路由名称 | 
is_micro_messenger 
描述
是否微信浏览器
plugin_update_notify 
描述
插件更新通知
is_show_mobile_page 
描述
是否开启手机微网校,只在移动设备访问才生效
is_mobile_client 
描述
是否移动端设备访问
select_options 
描述
返回 option 标签
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
choices | 是 | 下拉框的选项 | 
selected | 否 | 当前选中的项 | 
empty | 否 | 没有选中某项时,显示的内容 | 
示例
<select>
    {{ select_options({'A':'A', 'B':'B', 'C':'C'}, 'A', '选项') }}
</select>以上会输出:
<select>
    <option value="">选项</option>
    <option value="A" selected="selected">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>radios 
描述
返回 input 单选框 标签
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
name | 是 | input标签的name属性 | 
choices | 是 | 单选框的选项 | 
checked | 否 | 当前选中的项 | 
示例
{{ radios('learnMode', { 'freeMode': '自由', 'lockMode': '解锁' }, 'freeMode') }}以上会输出:
<label><input type="radio" name="learnMode" value="freeMode" checked="checked"> 自由</label>
<label><input type="radio" name="learnMode" value="lockMode"> 解锁</label>checkboxs 
描述
返回 input 复选框标签
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
name | 是 | input标签的name属性 | 
choices | 是 | 复选框的选项 | 
checkeds | 否 | 当前选中的项 | 
示例
{{ checkboxs('boxs', {'A':'A', 'B':'B','C':'C'},['A','C']) }}以上会输出:
<label><input type="checkbox" name="boxs[]" value="A" checked="checked"> A</label>
<label><input type="checkbox" name="boxs[]" value="B"> B</label>
<label><input type="checkbox" name="boxs[]" value="C" checked="checked"> C</label>dict 
描述
字典,预先定义好的数据,在dict.zh_CN.yml定义 返回一个对象
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
name | 是 | 字典名称 | 
示例
{{ dump(dict('courseType')) }}以上会输出:
array(4) {
  ["live"]=>
  string(12) "直播课程"
  ["open"]=>
  string(15) "录播公开课"
  ["liveOpen"]=>
  string(15) "直播公开课"
  ["normal"]=>
  string(12) "普通课程"
}dict_text 
描述
返回字典中的对应key的文本
参数
| 字段 | 是否必填 | 描述 | 
|---|---|---|
name | 是 | 字典名称 | 
key | 否 | 
示例
{{ dict_text('courseType', 'open') }}以上会输出:
直播课程