discuz帖子列表页调用封面图片的方法
为提高用户体验,本文整理分享如何在帖子列表页调用显示主题封面。
首先在source/module/forum/位置下找到forum_forumdisplay.php文件打开
找到如下代码
- if($thread[‘rushreply’]) {
- $rushtids[$thread[‘tid’]] = $thread[‘tid’];
- }
复制代码
在这段代码下面添加下方代码(在}下方添加):
- $threada= C::t(‘forum_attachment’)->fetch_all_by_id(‘tid’, $thread[‘tid’], ‘aid’);
- $threadaid = reset($threada);
- $threadpic = C::t(‘forum_attachment_n’)->fetch_by_aid_uid($threadaid[‘tableid’], $threadaid[‘aid’], $thread[‘authorid’]);
- $thread[‘pic’] = $threadpic[‘attachment’];
复制代码
完成上方的变更后,就可以在帖子列表页模板中使用$thread[‘pic’] 调用主题封面。
$thread[‘pic’]所调用的是“附件”不分格式,也就是说,有可能调用到.rar/.zip之类的附件,并不是专调图片,算是个弊端。
我的模板里是这么调用的:
<img src=”http://file.cmsbj.cn/cmsbj_file/forum/$thread[‘attachments’][‘used’][‘0’][‘attachment’]” alt=”$thread[subject]”/>
前面的网址是我的远程附件服务器地址,须改成自己的路径。这个是可以区分开附件类型,只调用图片。
网上说的默认是调用的最后一张图,但我测试的效果是就是默认调用第一张。
调用三张
<img src=”http://file.cmsbj.cn/cmsbj_file/forum/$thread[‘attachments’][‘used’][‘0’][‘attachment’]” alt=”$thread[subject]”/>
<img src=”http://file.cmsbj.cn/cmsbj_file/forum/$thread[‘attachments’][‘used’][‘1’][‘attachment’]” alt=”$thread[subject]”/>
<img src=”http://file.cmsbj.cn/cmsbj_file/forum/$thread[‘attachments’][‘used’][‘2’][‘attachment’]” alt=”$thread[subject]”/>
小编按照上面测试了,效果不佳。
像这样<img src=”我的域名/data/attachment/forum/$thread[‘attachments’][‘used’][‘0’][‘attachment’]” alt=”$thread[subject]”/>它就不显示。
只有这样调用才能显示<img src=”我的域名/data/attachment/forum/$thread[‘pic’]” alt=”$thread[subject]”/>