Discuz获取相关帖子封面的方法教程

overme6个月前 (10-17)网页设计295
Discuz系统帖子内容页是带有相关帖子推荐功能的,根据帖子的Tags进行相关推荐。小编在进行手机端模板开发时,使用了PC端功能,显示效果如下图所示,只有帖子标题,没有封面。

为提高访客体验,在相关帖子下方帖子左侧增加主题封面显示。

步骤一:打开source/module/forum/forum_viewthread.php文件
搜索$post[‘tags’],修改为如下内容

  1. if($post[‘tags’]) {
  2.                                 $post[‘relateitem’] = getrelateitem($post[‘tags’], $post[‘tid’], $_G[‘setting’][‘relatenum’], $_G[‘setting’][‘relatetime’]);
  3.                                 foreach($post[‘relateitem’] as $k=>$img)
  4.                                    {
  5.                                         $threada= C::t(‘forum_attachment’)->fetch_all_by_id(‘tid’, $img[‘tid’], ‘aid’);
  6.                                                 $threadaid = reset($threada);
  7.                                                 $threadpic = C::t(‘forum_attachment_n’)->fetch_by_aid_uid($threadaid[‘tableid’], $threadaid[‘aid’], $thread[‘authorid’]);
  8.                                                 $thread[‘pic’] = $threadpic[‘attachment’];
  9.                                                 $post[‘relateitem’][$k][‘img’] = ‘data/attachment/forum/’.$thread[‘pic’];
  10.                                    }
  11.                         }

复制代码

参考上方代码后,相关帖子有封面输出了,但是部分没有封面的的主题,加载失败显示“点击重新加载”。如何处理参考下方内容:

[contentrestriction]if($post[‘tags’]) {
$post[‘relateitem’] = getrelateitem($post[‘tags’], $post[‘tid’], $_G[‘setting’][‘relatenum’], $_G[‘setting’][‘relatetime’]);
foreach($post[‘relateitem’] as $k=>$img)
{
$threada= C::t(‘forum_attachment’)->fetch_all_by_id(‘tid’, $img[‘tid’], ‘aid’);
$threadaid = reset($threada);
$threadpic = C::t(‘forum_attachment_n’)->fetch_by_aid_uid($threadaid[‘tableid’], $threadaid[‘aid’], $thread[‘authorid’]);
$thread[‘pic’] = $threadpic[‘attachment’];
if(empty($thread[‘pic’])){
$post[‘relateitem’][$k][‘img’] = ‘data/attachment/forum/’.’5izixue.jpg’;
}
else{
$post[‘relateitem’][$k][‘img’] = ‘data/attachment/forum/’.$thread[‘pic’];
}
}
}
为什么添加了if(empty($thread[‘pic’]))的判断?
如果遇到主题确实没有封面,如果不添加该判断,则图片资源加载出错,网页布局会变化,用户体验不好。添加判断后,主题没有封面时,可以替换为固定的封面。[/contentrestriction]

步骤二:
在帖子模板中,添加如下内容:

  1. <div class=”m_relation”>
  2.                                     <h3>{lang related_thread}</h3>
  3.                                     <ul>
  4.                                             <!–{loop $post[‘relateitem’] $var}–>
  5.                                             <li>
  6.                                             <a href=”forum.php?mod=viewthread&tid=$var[tid]” title=”$var[subject]” class=”topic_img”><img src=”$var[img]” width=”100px” height=”60px”></a>
  7.                                             <span class=”related_des”>
  8.                                                  <div class=”related_title”><a href=””>$var[subject]</a></div>
  9.                                                  <span class=”related_views”><i class=”icon-eye1″></i></span>
  10.                                             </span>
  11.                                             </li>
  12.                                             <!–{/loop}–>
  13.                                     </ul>
  14.                             </div>

其中$var[img]就是获取的相关帖子的封面地址

优化后的显示效果如下图:

以上,就是Discuz相关帖子主题封面获取的方法

相关文章


		Discuz版块下方显示最新主题设置方法

Discuz版块下方显示最新主题设置方法

小编网站首页版块开始显示效果是这样的:版块下显示的是最后发表时间,没有标题内容 需要的显示效果如图: 版块下显示最新发帖的设置方法: 1、 显示效果都是模板控制的,修改对应的discuz论坛首页...


		Discuz相关帖子功能开启方法

Discuz相关帖子功能开启方法

Discuz系统相同帖子功能,是非常不错的功能,可以根据标签,匹配相关内容供用户浏览. 如下图示: 在此分享相关帖子功能开启方法: 步骤1: 进入后台 -> 界面 ->界面设置-&...

如何去掉Discuz标题中的Powered by Discuz

使用Discuz系统的网站,默认每个页面标题后面会出现”Powered by Discuz!“字样的信息,使得页面标题比较冗长。 为优化标题结构,在此分享Discuz标题结构优化方法。 操作方法如...


		如何删除Discuz触屏版图片链接

如何删除Discuz触屏版图片链接

如下图所示,Discuz默认手机触屏版图片资源,是带有a链接的。 手机浏览帖子时,不小心点击到图片时,会导致网页重新载入,影响用户体验。 在此分享取消触屏版图片链接的方法: 1、稍微了解Disc...

discuz通过{eval }在模板中运行 PHP语句

为了安全起见,discuz 系统默认模板文件无法直接用 <?php … ?> 来运行PHP语句,只能通过固定标签 {eval} 在模板中运行 PHP 语句。 discuz模板php单行...

discuz帖子列表页 帖子预览 相关模板

帖子列表页的帖子预览展示用的模板是/template/default/forum/viewthread_preview.htm,展示出来的楼层模板是同目录的viewthread_preview_n...

发表评论

访客

看不清,换一张

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