admin 发表于 2018-12-25 16:20

discuz x3.4/x3.3帖子列表页调用帖子内容图片附件(多图)

【前言】:discuz帖子列表页单调不好看?想变得丰富多彩?调用帖子内容多图怎么实现?今天就给大家分享一下如何实现帖子列表页调用帖子内容图片附件(多图,可设置调用图片数量)。
【帖子列表页调用帖子内容图片教程】
1、找到forum/forumdisplay_list.htm文件,打开并按照以下方法进行编辑;
2、打开forumdisplay_list.htm文件后,找到<!--{loop $_G['forum_threadlist'] $key $thread}-->代码,在其下添加:
<!--{eval $tbid = DB::result(DB::query("SELECT tableid FROM ".DB::table('forum_attachment')." WHERE `tid`= '$thread'"));}-->
<!--{if $tbid}-->
<!--{eval $picount = DB::fetch_all("SELECT aid FROM ".DB::table('forum_attachment_'.$tbid.'')." WHERE `tid`= '$thread' AND `isimage`=1;");}-->
<!--{eval $picnum = count($picount);}-->
<!--{if $picnum < 3}-->
<!--{eval $litpicnum = '1';}-->
<!--{elseif $picnum > 2 && $picnum < 6}-->
<!--{eval $litpicnum = '3';}-->
<!--{elseif $picnum > 5}-->
<!--{eval $litpicnum = '6';}-->
<!--{/if}-->
<!--{eval $covers = DB::fetch_all("SELECT attachment,aid,description FROM ".DB::table('forum_attachment_'.$tbid.'')." WHERE `tid`= '$thread' AND `isimage`=1 LIMIT 0,$litpicnum;");}-->
<!--{/if}-->
3、在forumdisplay_list.htm中继续找到
<!-- end of table "forum_G" branch 1/3 -->
在这段代码上方找到最靠近的</tr>,在此之后添加:<!--{if $tbid}-->
<tr>
<td></td>
<td></td>
<td colspan="4">
<!--{loop $covers $thecover}-->
<!--{if $litpicnum == 1}-->
<a href="forum.php?mod=viewthread&tid=$thread" class="z pipe" title="$thecover"><img src="data/attachment/forum/$thecover['attachment']" width="100" height="100"/></a>
<font class="z">This is what it is like to be with Trump.</font>
<!--{else}-->
<a href="forum.php?mod=viewthread&tid=$thread" class="z pipe" title="$thecover"><img src="data/attachment/forum/$thecover['attachment']" width="100" height="100"/></a>
<!--{/if}-->
<!--{/loop}-->
</td>
</tr>
<!--{/if}-->
4、继续找到:
<!--{if !$thread['forumstick'] && ($thread['isgroup'] == 1 || $thread['fid'] != $_G['fid'])}-->
<!--{if $thread['related_group'] == 0 && $thread['closed'] > 1}-->
<!--{eval $thread=$thread;}-->
<!--{/if}-->
<!--{if $groupnames[$thread]}-->
<span class="fromg xg1"> [{lang from}: <a href="forum.php?mod=group&fid={$groupnames[$thread]}" target="_blank" class="xg1">{$groupnames[$thread]}</a>]</span>
<!--{/if}-->
<!--{/if}-->
在之后添加
<!--{if $tbid && !$picnum == 0}--><span style="color:red;"><!--{$picnum}-->P</span><!--{/if}--></a>
保存后完成!效果如下图所示。

【代码分析】:
1、上面介绍的代码中,有一段是设置图片显示数量的逻辑代码,如下:
<!--{if $picnum < 3}-->
<!--{eval $litpicnum = '1';}-->
<!--{elseif $picnum > 2 && $picnum < 6}-->
<!--{eval $litpicnum = '3';}-->
<!--{elseif $picnum > 5}-->
<!--{eval $litpicnum = '6';}-->
意思是当内容中图片数量小于3时,显示1张图片;
当图片数量大于2小于6时,图片显示3张;
当图片数量大于5时,显示6张图片。大家可以按照需求进行修改。
2、代码中设置的图片长和宽都是100px,width="100" height="100"如果有需要可以按照自己的想法修改数值。


小白 发表于 2019-2-21 13:30

支持,正需要

页: [1]
查看完整版本: discuz x3.4/x3.3帖子列表页调用帖子内容图片附件(多图)