回调是用于在列表显示时对其值进行格式化,如果不填写回调函数,那么就会原样显示数据库储存内容,如果内置的回调函数满足不了需求,也可以自己定义回调函数。
文本显示:dr_clearhtml 标题: title 评论专用: comment 多文件: files uid会员: uid 栏目: catid 副栏目:catids 日期时间: datetime 日期: date 会员信息: author 地区联动: linkage_address 联动菜单(单选)名称: linkage_name 联动菜单(多选)名称: linkages_name 单选字段名称: radio_name 下拉字段名称: select_name 复选框字段名称: checkbox_name 实时存储文本值:save_text_value 实时存储选择值:save_select_value 单文件:file(4.5.3版本支持) 图片专用:image(4.5.3版本支持) 去掉html代码:text(4.6版本支持) 将html字符编码输出:code(4.6版本支持) 原样输出:get_value
如果内置的回调函数满足不了需求,也可以自己定义回调函数
1、新建扩展类文件/dayrui/My/Library/Function_list.php
<?php namespace My\Library; class Function_list extends \Phpcmf\Library\Function_list { // mytest是回调函数的名字 // $value是传入的数据库值 // $param是列表搜索的参数,可以忽略 // $data是列表显示的全部值,可以忽略 function mytest($value, $param = [], $data = []) { // 下面给传入的值加粗操作 $html = '<b>'.$value.'</b>'; return $html; // 这样返回的值就带加粗标签 } }
回调函数filesthumb,如果多文件字段上传了,就显示一个图标。
<?php namespace My\Library; class Function_list extends \Phpcmf\Library\Function_list { // mytest是回调函数的名字 // $value是传入的数据库值 // $param是列表搜索的参数,可以忽略 // $data是列表显示的全部值,可以忽略 // $field是当前数据的字段属性数组,可以忽略 function filesthumb($value, $param = [], $data = [], $field = []) { // 下面给传入的值加粗操作 $html = $value ? '<i class="fa fa-photo"></i>' : '没有'; return $html; // 这样返回的值就带加粗标签 } }
示例2:Related内容关联字段调用信息名称
比如,创建Related内容关联字段,只能选择1次,那么存储在数据库中的值就是选择的信息ID,在后台列表显示的也是这个ID,如何显示这个ID的信息标签呢。
<?php namespace My\Library; class Function_list extends \Phpcmf\Library\Function_list { // renyuanname是回调函数的名字 // $value是传入的数据库值 // $param是列表搜索的参数,可以忽略 // $data是列表显示的全部值,可以忽略 // $field是当前数据的字段属性数组,可以忽略 //renyuan 是被关联的模块,也是要显示标题的表。 function renyuanname($value, $param = [], $data = [], $field = []) { // 下面给传入的值加粗操作 $renyuan = \Phpcmf\Service::M()->table_site('renyuan')->where('id', $value)->getRow(); $html = ''.$renyuan['title'].''; return $html; // 这样返回的值就带加粗标签 } }