欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > cms使用教程 > discuz使用教程 >

discuz教程:帖子列表页调用帖子图片附件

发布时间:2017-12-04  编辑:杨雨个人博客网站   点击:   

准确的说应该是调用多图,如果是一张图,直接设置封面即可,就不需要费这劲了。
网上也有方法,不过我不喜欢他们的方式。
代码可以直接写在模板forumdisplay_list.htm里,有不同数量不同样式。

discuz教程:帖子列表页调用帖子图片附件

 
以默认模板为例:
打开模板forum/forumdisplay_list.htm,找到83行左右:

<!--{loop $_G['forum_threadlist'] $key $thread}-->

复制代码

在其下增加

<!--{eval $tbid = DB::result(DB::query("SELECT tableid FROM ".DB::table('forum_attachment')." WHERE `tid`= '$thread[tid]'"));}-->

<!--{if $tbid}-->

<!--{eval $picount = DB::fetch_all("SELECT aid FROM ".DB::table('forum_attachment_'.$tbid.'')." WHERE `tid`= '$thread[tid]' 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[tid]' AND `isimage`=1 LIMIT 0,$litpicnum;");}-->

<!--{/if}-->

复制代码

再查找

<!-- end of table "forum_G[fid]" branch 1/3 -->

复制代码

其上最近的</tr>之后增加

<!--{if $tbid}-->

<tr>

<td></td>

<td></td>

<td colspan="4">

<!--{loop $covers $thecover}-->

<!--{if $litpicnum == 1}-->

<a href="http://itbyc.com/forum.php?mod=viewthread&tid=$thread[tid]" title="$thecover[aid]"><img src="data/attachment/forum/$thecover['attachment']"/></a>

<font>This is what it is like to be with Trump.</font>

<!--{else}-->

<a href="http://itbyc.com/forum.php?mod=viewthread&tid=$thread[tid]" title="$thecover[aid]"><img src="data/attachment/forum/$thecover['attachment']"/></a>

<!--{/if}-->

<!--{/loop}-->

</td>

</tr>

<!--{/if}-->

复制代码

再找到

<!--{if !$thread['forumstick'] && ($thread['isgroup'] == 1 || $thread['fid'] != $_G['fid'])}-->

<!--{if $thread['related_group'] == 0 && $thread['closed'] > 1}-->

<!--{eval $thread[tid]=$thread[closed];}-->

<!--{/if}-->

<!--{if $groupnames[$thread[tid]]}-->

<span> [{lang from}: <a href="http://itbyc.com/forum.php?mod=group&fid={$groupnames[$thread[tid]][fid]}" target="_blank">{$groupnames[$thread[tid]][name]}</a>]</span>

<!--{/if}-->

<!--{/if}-->

复制代码

其下增加

<!--{if $tbid && !$picnum == 0}--><span><!--{$picnum}-->P</span><!--{/if}--></a>

复制代码

结束。

具体的图片显示多少这里↓,<3显示1,>2且<6显示3,>5显示6。

<!--{if $picnum < 3}-->

<!--{eval $litpicnum = '1';}-->

<!--{elseif $picnum > 2 && $picnum < 6}-->

<!--{eval $litpicnum = '3';}-->

<!--{elseif $picnum > 5}-->

<!--{eval $litpicnum = '6';}-->

<!--{/if}-->

复制代码

这个是匆忙写的,没注意有没有逻辑漏洞,如有错请提出。

后面具体的样式是这段↓

<!--{if $litpicnum == 1}-->

<a href="http://itbyc.com/forum.php?mod=viewthread&tid=$thread[tid]" title="$thecover[aid]"><img src="data/attachment/forum/$thecover['attachment']"/></a>

<font>This is what it is like to be with Trump.</font>

<!--{else}-->

<a href="http://itbyc.com/forum.php?mod=viewthread&tid=$thread[tid]" title="$thecover[aid]"><img src="data/attachment/forum/$thecover['attachment']"/></a>

<!--{/if}-->

复制代码

如果图片数量等于1,后面带个摘要。
否则图片横排铺开。具体数量会按上面的显示。

通常情况下,两种样式即可,1图和多图,即1图显示在左右,多图在下面铺开。
如果多种样式,<!--{if $litpicnum == 数量}-->此数量时的表现形式</if>
当然,这的数量$litpicnum是受上面的代码中与$picnum关系的限定。
$picnum是实际总数量,$litpicnum是经过判断后允许显示的数量。

要下班了,写的差不多啦,stop here!

才知道一个鬼问题,不需要查询附件索引表,附件分表id就是帖子id最后一位。

杨雨个人博客温馨提示:如果你正在寻找优秀的discuz模板,那你可以到杨雨个人博客的 discuz模板 频道看看,相信一定有你喜欢的!

本文地址:http://itbyc.com/cms/discuz/18497.html
转载请注明出处。
分享是一种快乐,也是一种美德:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1