discuz帖子列表页调用封面图片的方法

overme3个月前 (10-17)网页设计130
帖子列表页只有文字信息难免有些单调。
为提高用户体验,本文整理分享如何在帖子列表页调用显示主题封面。

首先在source/module/forum/位置下找到forum_forumdisplay.php文件打开

找到如下代码

  1. if($thread[‘rushreply’]) {
  2.         $rushtids[$thread[‘tid’]] = $thread[‘tid’];
  3. }

复制代码

在这段代码下面添加下方代码(在}下方添加):

  1. $threada= C::t(‘forum_attachment’)->fetch_all_by_id(‘tid’, $thread[‘tid’], ‘aid’);
  2. $threadaid = reset($threada);
  3. $threadpic = C::t(‘forum_attachment_n’)->fetch_by_aid_uid($threadaid[‘tableid’], $threadaid[‘aid’], $thread[‘authorid’]);
  4. $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]”/>

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。