广告位招租 qq245909083
广告
广告

discuz diy帖子列表增加调用字段调用所有附件图片

分享时间:2020-04-10
原来的discuz后台模块模板里字段只有一个{pic}字段。只可以调用一张附件图片。

具体原理是添加字段{picArr},在帖子模块里返回当前帖子的所有附件图片的url,我自己是把url全部转成JSON,这样比较好调用。

由于是初学php 不会封装代码什么的哈。请见谅!

首先同样在文件/source/class/block/forum/block_thread.php里面找到。
        
function fields() {
                return array(
                                        'id' => array('name' => lang('blockclass', 'blockclass_field_id'), 'formtype' => 'text', 'datatype' => 'int'),
                                        'url' => array('name' => lang('blockclass', 'blockclass_thread_field_url'), 'formtype' => 'text', 'datatype' => 'string'),
                                        'title' => array('name' => lang('blockclass', 'blockclass_thread_field_title'), 'formtype' => 'title', 'datatype' => 'title'),
                                        'pic' => array('name' => lang('blockclass', 'blockclass_thread_field_pic'), 'formtype' => 'pic', 'datatype' => 'pic'),


大概在170行左右。


在 'pic' => array('name' => lang('blockclass', 'blockclass_thread_field_pic'), 'formtype' => 'pic', 'datatype' => 'pic'), 后面添加
'picArr' => array('name' => lang('blockclass', '所有附件图片'), 'formtype' => 'text', 'datatype' => 'string'),

然后在大概365行左右 找到
while($data = DB::fetch($query)) {
                        $_G['block_thread'][$data['tid']] = $data;
                        if($style['getsummary']) {
                                $threadtids[$data['posttableid']][] = $data['tid'];
                        }
                        $listtids[$data['tid']] = $data['tid'];



在后面添加
$arr = array();
                        $i=substr($data['tid'], -1);
                        $picSql = DB::query("SELECT attachment,tid FROM `" . DB::table('forum_attachment_' . $i) . "` WHERE tid in(" . $data['tid'] .")");
                        while ($result = DB::fetch($picSql)) {
                                array_push($arr, $result);
                        }


继续在385行找到  
'fields' => array(
                                        'fulltitle' => str_replace('\\\'', ''', addslashes($data['subject'])),

后面添加

'picArr' => json_encode($arr),

这样就改完了,后台——工具——更新缓存——3个全选——更新。
然后在模块模板里就能看到。
返回顶部