回调是用于在列表显示时对其值进行格式化,如果不填写回调函数,那么就会原样显示数据库储存内容。
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

