discuz个人空间主题列表 图片模式实现方法

时间:2018-12-26 10:07作者:网友投稿
如果需要实现该呈现方式,我们需要首先了解discuz封面图片存储原理:
discuz没有将主题列表封面路径存在数据表中,只是在pre_forum_thread表中存了一个cover标识。然后用getthreadcover 函数调取,diy调用的图片也会产生缩略图,可以设置缩略图的质量。
封面图片存储路径格式:data/attachment/forum/threadcover/43/ec/81.jpg
getthreadcover 函数:
function getthreadcover($tid, $cover = 0, $getfilename = 0) {
  global $_G;
  if(empty($tid)) {
    return '';
  }
  $coverpath = '';
  $covername = 'threadcover/'.substr(md5($tid), 0, 2).'/'.substr(md5($tid), 2, 2).'/'.$tid.'.jpg';
  if($getfilename) {
    return $covername;
  }
  if($cover) {
    $coverpath = ($cover < 0 ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/'.$covername;
  }
  return $coverpath;
}

文件路径:/source/function/function_forum.php
复制代码
实现方法:
修改:/source/language/home/lang_template.php
添加like 喜欢或查看

修改:/template/default/home/space_thread.htm
处理封面图:
{eval 
  $covername = 'threadcover/'.substr(md5($thread[tid]), 0, 2).'/'.substr(md5($thread[tid]), 2, 2).'/'.$thread[tid].'.jpg';
  
  $coverpath = ($cover < 0 ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/'.$covername;
}


图片列表
<li style="width: 227px;  left: 0px; top: 0px;float:left;">
  <div class="c cl">
  <a class="z" title="$thread[subject]" onclick="atarget(this)" href="forum.php?mod=viewthread&tid=$thread[tid]">
  <img width="203" alt="$thread[subject]" src="{eval echo $coverpath;}">
  </a>
  </div>
  <h3 class="xw0">

  <a href="forum.php?mod=viewthread&tid=$thread[tid]" onclick="atarget(this)" target="_blank" {if $thread['displayorder'] == -1}class="recy"{/if}>$thread[subject]</a>
  
  </h3>
  <div class="auth cl">
  <cite class="xg1 y">
  {lang like}: <em>$thread[views]</em>   {lang reply}: <a title="0 回复" href="forum.php?mod=viewthread&tid=$thread[tid]">$thread[replies]</a>
  </cite>
  <a href="home.php?mod=space&uid=$thread[authorid]" target="_blank">$thread[author]</a>$thread[dateline]</div>
</li>


免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。