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:47
remain_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:05
duration_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
1073741824
is_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') }}
以上会输出:
直播课程