discuz diy帖子列表增加调用字段调用所有附件图片-Discuz教程下载

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

来自版块: Discuz教程发表于: 2020-4-25 00:56:30
22999
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
原来的Discuz后台模块模板里字段只有一个{pic}字段。只可以调用一张附件图片

参考帖子 https://www.tuyuanma.com/news_8399_1_1  实现调出所有附件图片。

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

1、首先同样在文件/source/class/block/forum/block_thread.php里面找到。
  1. function fields() {
  2.                 return array(
  3.                                         'id' => array('name' => lang('blockclass', 'blockclass_field_id'), 'formtype' => 'text', 'datatype' => 'int'),
  4.                                         'url' => array('name' => lang('blockclass', 'blockclass_thread_field_url'), 'formtype' => 'text', 'datatype' => 'string'),
  5.                                         'title' => array('name' => lang('blockclass', 'blockclass_thread_field_title'), 'formtype' => 'title', 'datatype' => 'title'),
  6.                                         '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'), 后面添加
  1. 'picArr' => array('name' => lang('blockclass', '所有附件图片'), 'formtype' => 'text', 'datatype' => 'string'),
复制代码
然后在大概365行左右 找到
  1. while($data = DB::fetch($query)) {
  2.                         $_G['block_thread'][$data['tid']] = $data;
  3.                         if($style['getsummary']) {
  4.                                 $threadtids[$data['posttableid']][] = $data['tid'];
  5.                         }
  6.                         $listtids[$data['tid']] = $data['tid'];
复制代码
在后面添加
  1. $arr = array();
  2.                         $i=substr($data['tid'], -1);
  3.                         $picSql = DB::query("SELECT attachment,tid FROM `" . DB::table('forum_attachment_' . $i) . "` WHERE tid in(" . $data['tid'] .")");
  4.                         while ($result = DB::fetch($picSql)) {
  5.                                 array_push($arr, $result);
  6.                         }
复制代码

继续在385行找到
  1. 'fields' => array(
  2.                                         'fulltitle' => str_replace('\\\'', ''', addslashes($data['subject'])),
复制代码
后面添加
  1. 'picArr' => json_encode($arr),
复制代码
这样就改完了,后台——工具——更新缓存——3个全选——更新。
然后在模块模板里就能看到。

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部