网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>论坛教程

Discuz X3.3 帖子列表页调用帖子图片附件的方法

时间:2025-03-29 14:40:39    来源:    人气:0

在网站开发中,调整和优化模板文件是提升用户体验的重要步骤。以下是如何通过修改模板forumdisplay_list.htm来实现图片数量的动态显示功能,同时确保SEO友好的文章内容。

在网站开发过程中,有时需要对论坛帖子列表进行自定义样式调整,以增强用户视觉体验。本文将详细介绍如何在默认模板中添加图片显示逻辑,使其根据图片数量自动调整显示样式。


首先,打开模板文件 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="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>
<font class="z">This is what it is like to be with Trump.</font>
<!--{else}-->
<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>
<!--{/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 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>
<!--{/if}-->
<!--{/if}-->
    

在其下方增加以下代码,用于显示图片总数:


<!--{if $tbid && !$picnum == 0}--><span style="color:red;"><!--{$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}-->
    

样式部分可以根据需求进一步调整。例如,当图片数量为1时,可以添加一段描述文字作为摘要;否则,图片将以横排形式展示。

总结来说,这种动态显示方式不仅提升了用户体验,还增强了页面的可读性和吸引力,同时也符合SEO优化的原则。

相关文章

  • Discuz 帖子内容页面上下篇代码分析

    Discuz 帖子内容页面上下篇代码分析

    在Discuz论坛系统中,帖子内容页面的导航功能(上一篇和下一篇)对于提升用户体验至关重要。这些功能可以让用户更方便地浏览相关内容,而无需返回列表页重新选择。以下是实现“上一篇”和“下一篇”功能的具体代码及其优化后的SEO文章。Discuz帖子内容页面中的导航功能可以通过简单的HTML代码实现,...
    2025-03-29
  • Discuz主题内容页面添加打印按钮的代码实现

    Discuz主题内容页面添加打印按钮的代码实现

    在Discuz论坛系统中,为内容页面添加打印按钮是一项实用的功能,它可以让用户轻松打印出主题内容。以下是一篇关于如何实现这一功能的SEO优化文章。 在构建基于Discuz的主题页面时,增加一个打印按钮可以极大地提升用户体验。这不仅方便了那些希望保存内容以备后用的用户,还可能间接提高网站的访问量和停...
    2025-03-29
  • Discuz字符串截取函数 `messagecutstr()` 详解

    Discuz字符串截取函数 `messagecutstr()` 详解

    在进行Discuz二次开发时,我们常常需要对内容进行简介处理。此时,可以利用Discuz自带的内容处理函数 `messagecutstr` 来实现这一需求。本文将详细介绍该函数的用法及参数说明,并通过实例演示其具体操作。 ### 函数定义与参数解释 `messagecutstr` 是一个用于...
    2025-03-29
  • Discuz 实现发表回帖邮件通知楼主的方法

    Discuz 实现发表回帖邮件通知楼主的方法

    在网站开发和功能扩展的过程中,实现回帖邮件通知功能可以有效提升用户体验。以下是实现该功能的详细步骤,包括代码修改的具体位置和方法。打开目录:sourceincludepost找到文件:post_newreply.php在该文件中,找到以下代码段: 复制代码 if...
    2025-03-29

公众号