回调是用于在列表显示时对其值进行格式化,如果不填写回调函数,那么就会原样显示数据库储存内容。
zdcms默认的回调函数有:
标题: title 评论: comment 多文件: files (只显示有或无) uid会员: uid 栏目: catid 副栏目:catids 时间: datetime 会员信息: author 地区联动: linkage_address 联动菜单(单选)名称: linkage_name 联动菜单(多选)名称: linkages_name 单选字段名称: radio_name 下拉字段名称: select_name 复选框字段名称: checkbox_name 实时存储文本值:save_text_value 实时存储选择值:save_select_value
zdcms系统自带一些简单的回调,如下图:
1. 标题: title
普通的文本显示,会加上a超链接
2. 评论: comment
3. 多文件: files (仅显示有或无)
4. uid会员: uid
根据uid参数显示账号信息,后台会点击查看详情
5. 栏目: catid
通过栏目id来显示对应的栏目名称
副栏目:catids,原理同上,会显示多个栏目
6. 时间: datetime
显示时间戳转为具体时间格式
7. 会员信息: author
同3,根据author账号字段参数显示账号信息,后台会点击查看详情
8. 地区联动: linkage_address
适用于地区的联动字段名称显示
9. 联动菜单名称: linkage_name
同8适用于任意联动菜单
10. 单选字段名称: radio_name
显示单选字段的name值
11. 下拉字段名称: select_name
显示下拉字段的name值
12. 复选框字段名称: checkbox_name
显示复选字段的name值,支持多个显示
13. 实时存储文本值:save_text_value
直接编辑字段,实现实时存储
14. 实时存储选择值:save_select_value
直接选择字段,实现实时存储状态值,这个字段对选项值有要求,只能是:1表示是,0表示否
比如这种,1表示上架,0表示下架
二次开发自定义回调函数说明
如果需要其他回调方法怎么办?我们也提供开发者自己定义回调函数的方案
新建扩展类文件/dayrui/My/Library/Function_list.php
<?php namespace My\Library; class Function_list extends \Phpcmf\Library\Function_list { // mytest是回调函数的名字 // $value是传入的数据库值 // $param是列表搜索的参数,可以忽略 // $data是列表显示的全部值,可以忽略 // $field是当前数据的字段属性数组,可以忽略 function mytest($value, $param = [], $data = [], $field = []) { // 下面给传入的值加粗操作 $html = '<b>'.$value.'</b>'; return $html; // 这样返回的值就带加粗标签 } }
举例:二次开发后台内容列表页显示多选联动菜单,请看下面方法:
1. 新建扩展类文件/dayrui/My/Library/Function_list.php
<?php namespace My\Library; class Function_list extends \Phpcmf\Library\Function_list { function dxld($value, $param = [], $data = [], $field = []) { if ($field && $field['setting']['option']['linkage']) { $res = ''; $values = dr_string2array($value); foreach ($values as $value) { $res.= dr_linkagepos($field['setting']['option']['linkage'], $value, '-'); } return $res; } return $value; } }
2. 列表显示字段那里填写回调函数:dxld