找回密码
 注册

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

 

最近更新

【前言】:discuz帖子列表页单调不好看?想变得丰富多彩?调用帖子内容多图怎么实现?今天就给大家分享一下如何实现帖子列表页调用帖子内容图片附件(多图,可设置调用图片数量)。 liebiao-2.jpg
【帖子列表页调用帖子内容图片教程】
1、找到forum/forumdisplay_list.htm文件,打开并按照以下方法进行编辑;
2、打开forumdisplay_list.htm文件后,找到
  1. <!--{loop $_G['forum_threadlist'] $key $thread}-->
复制代码
代码,在其下添加:
  1. <!--{eval $tbid = DB::result(DB::query("SELECT tableid FROM ".DB::table('forum_attachment')." WHERE `tid`= '$thread[tid]'"));}-->
  2. <!--{if $tbid}-->
  3. <!--{eval $picount = DB::fetch_all("SELECT aid FROM ".DB::table('forum_attachment_'.$tbid.'')." WHERE `tid`= '$thread[tid]' AND `isimage`=1;");}-->
  4. <!--{eval $picnum = count($picount);}-->
  5. <!--{if $picnum < 3}-->
  6. <!--{eval $litpicnum = '1';}-->
  7. <!--{elseif $picnum > 2 && $picnum < 6}-->
  8. <!--{eval $litpicnum = '3';}-->
  9. <!--{elseif $picnum > 5}-->
  10. <!--{eval $litpicnum = '6';}-->
  11. <!--{/if}-->
  12. <!--{eval $covers = DB::fetch_all("SELECT attachment,aid,description FROM ".DB::table('forum_attachment_'.$tbid.'')." WHERE `tid`= '$thread[tid]' AND `isimage`=1 LIMIT 0,$litpicnum;");}-->
  13. <!--{/if}-->
复制代码

3、在forumdisplay_list.htm中继续找到
  1. <!-- end of table "forum_G[fid]" branch 1/3 -->
复制代码

在这段代码上方找到最靠近的</tr>,在此之后添加:
  1. <!--{if $tbid}-->
  2. <tr>
  3. <td></td>
  4. <td></td>
  5. <td colspan="4">
  6. <!--{loop $covers $thecover}-->
  7. <!--{if $litpicnum == 1}-->
  8. <a href="forum.php?mod=viewthread&tid=$thread[tid]" class="z pipe" title="$thecover[aid]"><img src="data/attachment/forum/$thecover['attachment']" width="100" height="100"/></a>
  9. <font class="z">This is what it is like to be with Trump.</font>
  10. <!--{else}-->
  11. <a href="forum.php?mod=viewthread&tid=$thread[tid]" class="z pipe" title="$thecover[aid]"><img src="data/attachment/forum/$thecover['attachment']" width="100" height="100"/></a>
  12. <!--{/if}-->
  13. <!--{/loop}-->
  14. </td>
  15. </tr>
  16. <!--{/if}-->
复制代码
4、继续找到:
  1. <!--{if !$thread['forumstick'] && ($thread['isgroup'] == 1 || $thread['fid'] != $_G['fid'])}-->
  2. <!--{if $thread['related_group'] == 0 && $thread['closed'] > 1}-->
  3. <!--{eval $thread[tid]=$thread[closed];}-->
  4. <!--{/if}-->
  5. <!--{if $groupnames[$thread[tid]]}-->
  6. <span class="fromg xg1"> [{lang from}: <a href="forum.php?mod=group&fid={$groupnames[$thread[tid]][fid]}" target="_blank" class="xg1">{$groupnames[$thread[tid]][name]}</a>]</span>
  7. <!--{/if}-->
  8. <!--{/if}-->
复制代码
在之后添加
  1. <!--{if $tbid && !$picnum == 0}--><span style="color:red;"><!--{$picnum}-->P</span><!--{/if}--></a>
复制代码

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


    小白

支持,正需要

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表