Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 首页热门贴+今日发贴排行+最新主题精华+在线时间排行 for D5 (0724更新)

[复制链接]
tianyo 发表于 2006-7-20 13:56:28 | 显示全部楼层 |阅读模式
自己的论坛升级了,首页也需要修改,所以就整理了一下。

多谢碧水无波兄的提醒,这个插件的部分代码修改自原作者是Y(yimis)!提示代码修改自哪位作者我找了很久都没有找到,知道的PM我吧,尊重作者的版权!

//===========================================================
难度:简单
是否修改数据库:否
需要修改的文件:discuz.php, templates/default/dizcuz.htm
//===========================================================

注意:修改前记住备份文件!!

抱歉,开始忘记了上传了图片,现在上传了,安装了的朋友可以下载附件上传到相应的文件夹中!


更新在2楼!

1、修改discuz.php
找到:
  1. $threads = $posts = $todayposts = $fids = 0;
复制代码


在下面添加:

  1. /////////////////////////////////////////////////////////////首页热门贴
  2. //在线等级排行榜
  3. $listnum=10;//个数
  4. $listlength=32;//长度
  5. $timelv="";
  6. $query = $db->query("SELECT m.uid,m.username,m.oltime,o.* FROM {$tablepre}members m, {$tablepre}onlinetime o WHERE m.uid=o.uid ORDER BY total DESC LIMIT 0, $listnum");

  7. while($members=$db->fetch_array($query)){
  8. $members[totals]=round($members[total]/60,2);
  9. $members[onlinetime]=$members[totals];
  10. $i=0;
  11. while((5*$i*$i+15*$i)<=$members[totals])
  12. {$i++;
  13. //$C=5*$i*$i+10*$i;
  14. $N=$i;
  15. }
  16. $more= $members[totals] ? 20-$members[totals] % 20 : 20;
  17. $lv= $N;
  18.        $timelv.="<a href='viewpro.php?uid=$members[uid]'>$members[username]</a>  <img src="images/lv/{$lv}.gif" alt="在线等级:{$lv} 级\n在线时长:{$members[onlinetime]} 小时\n升级剩余时间: {$more} 小时"><br />";
  19. }
  20. unset($members);
  21. //在线等级排行榜

  22. //今日发贴排行
  23. $tomonth=date(n);
  24. $todate=date(j);
  25. $toyear=date(Y);
  26. $time=mktime(0,0,0,$tomonth,$todate,$toyear);
  27. $query=$db->query("select count(pid) as num,authorid,author from $tablepre"."posts where dateline>=$time group by authorid order by num desc limit 0,11");
  28. while($result=$db->fetch_array($query)){
  29. $poststar.="<a href=viewpro.php?uid=".$result[authorid].">".$result[author]."</a> (<font color=red>".$result[num]."</font>)<br>";
  30. }
  31. //今日发贴排行

  32. $hack_subject_len=40; //每个标题最多显示得字数
  33. $hack_subject_num=11; //需要显示记录数

  34. $hack_newthreads_threadlist = array();
  35. $thread = array();
  36. //最新贴
  37. $query = $db->query("SELECT dateline,tid,subject,author,views,replies,lastpost,lastposter FROM {$tablepre}threads WHERE fid NOT IN(31,32,120,136,66,155) ORDER BY dateline DESC LIMIT 0, $hack_subject_num");

  38. while($thread = $db->fetch_array($query)) {
  39.         $thread['forumname'] = $thread['name'];
  40.         $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] + $timeoffset * 3600);
  41.         $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread[lastpost] + ($timeoffset * 3600));
  42.         $thread[subject0]=$thread[subject];
  43.         $thread['subject'] = cutstr($thread['subject'], $hack_subject_len);
  44.         $hack_newthreads_threadlist[] = $thread;
  45. }
  46. //最新贴

  47. $threadview = $threadreply = array();
  48. //最新回复
  49. $query = $db->query("SELECT dateline,tid,subject,author,views,replies,lastpost,lastposter FROM {$tablepre}threads WHERE fid NOT IN(31,32,120,136,66,155) AND replies > 0  ORDER BY lastpost DESC LIMIT 0, $hack_subject_num");
  50.         while($thread = $db->fetch_array($query)) {
  51.                 $thread[subject0]=$thread[subject];
  52.                 $thread['forumname'] = $thread['name'];
  53.                 $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] + $timeoffset * 3600);
  54.                 $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread[lastpost] + ($timeoffset * 3600));
  55.                 $thread[subject] = cutstr($thread[subject], $hack_subject_len);
  56.                 $threadreply[] = $thread;
  57.         }
  58. //最新回复
  59. ///////////////////////////////////////////////////////////////////首页热门贴
复制代码


2、修改模板discuz.htm

找到
  1. <!--{loop $catlist $key $cat}-->
复制代码


上面添加:
  1. <div class="maintable">
  2. <table cellspacing="{INNERBORDERWIDTH}" cellpadding="{TABLESPACE}" width="100%" align="center"  class="tableborder">
  3. <tr>
  4.   <td class=header align=center><span class=bold>今日发贴排行榜</span></td>
  5.   <td class=header align=center><span class=bold>最新发表主题</span></td>
  6.   <td class=header align=center><span class=bold>最新回复主题</span></td>
  7.   <td class=header align=center><span class=bold>会员在线排行榜</span></td>
  8. </tr>
  9. <tr>
  10.   <td bgcolor="{ALTBG2}" onMouseOver ="this.style.backgroundColor='{ALTBG1}'"  
  11. onMouseOut ="this.style.backgroundColor='{ALTBG2}'" valign="top">
  12. $poststar
  13. </td>


  14. <td bgcolor="{ALTBG2}" onMouseOver ="this.style.backgroundColor='{ALTBG1}'"  
  15. onMouseOut ="this.style.backgroundColor='{ALTBG2}'" valign="top">
  16. <!--{loop $hack_newthreads_threadlist $thread}-->
  17. <table width="100%" cellpadding="0" cellspacing="0" border="0">
  18. <td>
  19. <!--{if $thread[replies] != 0}-->
  20. <a href="viewthread.php?tid=$thread[tid]" title="主题作者 : $thread[author]{LF}主题名称 : $thread[subject0]{LF}发表时间 : $thread[date]{LF}浏览次数 : $thread[views] 次{LF}回复次数 : $thread[replies] 次{LF}回复作者 : $thread[lastposter]{LF}回复时间 : $thread[lastreplytime] $thread[displayorder] $thread[digest] $thread[rate] $thread[attachment] $thread[poll] $thread[blog] $thread[closed] $thread[highlight]">$thread[subject]</a>
  21. <!--{else}-->
  22. <a href="viewthread.php?tid=$thread[tid]" title="主题作者 : $thread[author]{LF}主题名称 : $thread[subject0]{LF}发表时间 : $thread[date]{LF}浏览次数 : $thread[views] 次{LF}回复次数 : $thread[replies] 次 {LF}回复作者 : 暂时没有回复{LF}回复时间 : 暂时没有回复 $thread[displayorder] $thread[digest] $thread[rate] $thread[attachment] $thread[poll] $thread[blog] $thread[closed] $thread[highlight]">$thread[subject]</a>
  23. <!--{/if}-->
  24. </table>
  25. <!--{/loop}-->
  26. </td>

  27. <td bgcolor="{ALTBG2}" onMouseOver ="this.style.backgroundColor='{ALTBG1}'"  
  28. onMouseOut ="this.style.backgroundColor='{ALTBG2}'" valign="top">
  29. <!--{loop $threadreply $rthread}-->
  30. <table width="100%" cellpadding="0" cellspacing="0" border="0">
  31. <td>
  32. <a href="redirect.php?tid=$rthread[tid]&goto=lastpost#lastpost" title="主题作者 : $rthread[author]{LF}主题名称 : $rthread[subject0]{LF}发表时间 : $rthread[date]{LF}浏览次数 : $rthread[views] 次{LF}回覆次数 : $rthread[replies] 次{LF}回复作者 : $rthread[lastposter]{LF}回复时间 : $rthread[lastreplytime] $rthread[displayorder] $rthread[digest] $rthread[rate] $rthread[attachment] $rthread[poll] $rthread[blog] $rthread[closed] $rthread[highlight]">$rthread[subject]</a>
  33. </table>
  34. <!--{/loop}-->
  35. </td>

  36.   <td class="altbg2"  onMouseOver="this.className='altbg1'" onMouseOut="this.className='altbg2'" align="left" valign="top">$timelv</td>
  37. </tr>
  38. </table><br>
  39. </div>
复制代码


3、后台更新缓存

4、上传附件中的lv文件夹到images文件夹里面!

ok,完成

[ 本帖最后由 tianyo 于 2006-9-4 21:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 楼主| tianyo 发表于 2006-7-20 13:56:53 | 显示全部楼层
【0722更新】有会员提出有些板块不可以出现在最新贴和回复贴中,那是因为我忘记了吧板块的数字修改了。因为论坛里面有些板块是不允许在这里面显示的,若是大家要全部显示的话可以大家这样修改。

找到
  1. WHERE fid NOT IN(31,32,120,136,66,155) ORDER
复制代码


改为
  1. WHERE fid  ORDER
复制代码


这样就可以全部板块显示了!

若是想部分板块显示,只要把WHERE fid NOT IN(31,32,120,136,66,155) ORDER这里面的数字(就是不想显示板块的id)加入,那么除了这些板块之外的其他板块就可以显示拉!


【0723更新】加入最新主题精华显示:(已修正)

注意:请先安装上面的热门贴先!!!

1、修改discuz.php
找到:
  1. if(empty($gid)) {
复制代码


在上面面添加:
  1. $hack_newthreads_threaddigest = array();
  2. //精华贴
  3. $query = $db->query("SELECT

  4. dateline,tid,subject,author,views,replies,lastpost,lastposter,digest FROM

  5. {$tablepre}threads WHERE digest>'0' AND fid NOT IN(0) ORDER BY dateline DESC LIMIT

  6. 0, $hack_subject_num");

  7. while($thread = $db->fetch_array($query)) {
  8.        $thread['forumname'] = $thread['name'];
  9.        $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] +

  10. $timeoffset * 3600);
  11.        $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread

  12. [lastpost] + ($timeoffset * 3600));
  13.        $thread[subject0]=$thread[subject];
  14.        $thread['subject'] = cutstr($thread['subject'], $hack_subject_len);
  15.        $hack_newthreads_threaddigest[] = $thread;
  16. }
  17. //精华贴
复制代码


2、修改模板文件discuz.htm
找到:
  1. <td class=header align=center><span class=bold>最新回复主题</span></td>
复制代码


在下面添加:
  1. <td class=header align=center><span class=bold>最新精华主题</span></td>
复制代码


找到:
  1. <td class="altbg2"  onMouseOver="this.className='altbg1'"

  2. onMouseOut="this.className='altbg2'" align="left" valign="top">$timelv</td>
  3. </tr>
复制代码


在上面添加:
  1. td bgcolor="{ALTBG2}" onMouseOver ="this.style.backgroundColor='{ALTBG1}'"  
  2. onMouseOut ="this.style.backgroundColor='{ALTBG2}'" valign="top">
  3. <!--{loop $hack_newthreads_threaddigest $thread}-->
  4. <table width="100%" cellpadding="0" cellspacing="0" border="0">
  5. <td>
  6. <!--{if $thread[replies] != 0}-->
  7. <a href="viewthread.php?tid=$thread[tid]" title="主题作者 : $thread[author]{LF}主

  8. 题名称 : $thread[subject0]{LF}发表时间 : $thread[date]{LF}浏览次数 : $thread

  9. [views] 次{LF}回复次数 : $thread[replies] 次{LF}回复作者 : $thread[lastposter]

  10. {LF}回复时间 : $thread[lastreplytime] $thread[displayorder]  $thread[rate]

  11. $thread[attachment] $thread[poll] $thread[blog] $thread[closed] $thread

  12. [highlight]{LF}精华级别 : 精华$thread[digest]">$thread[subject]</a>
  13. <!--{else}-->
  14. <a href="viewthread.php?tid=$thread[tid]" title="主题作者 : $thread[author]{LF}主

  15. 题名称 : $thread[subject0]{LF}发表时间 : $thread[date]{LF}浏览次数 : $thread

  16. [views] 次{LF}回复次数 : $thread[replies] 次 {LF}回复作者 : 暂时没有回复{LF}回复

  17. 时间 : 暂时没有回复 $thread[displayorder]  $thread[rate] $thread[attachment]

  18. $thread[poll] $thread[blog] $thread[closed] $thread[highlight]{LF}精华级别 : 精华

  19. $thread[digest]">$thread[subject]</a>
  20. <!--{/if}-->
  21. </table>
  22. <!--{/loop}-->
  23. </td>
复制代码

若是想要在主题后面加入作者显示,请在

  1. $thread[subject]</a>
复制代码


的后面添加:
  1. (<a href=viewpro.php?username=$discuz_userss><font color=red>$thread[author]

  2. </font></a>)
复制代码


ok,完成!!!


【0724更新】最新主题精华显示错误,修正精华3的在排在前头的问题!

若是安装了0723更新的朋友只要把
  1. $query = $db->query("SELECT

  2. dateline,tid,subject,author,views,replies,lastpost,lastposter,digest FROM

  3. {$tablepre}threads WHERE digest>'0' AND fid NOT IN(0) ORDER BY digest DESC

  4. LIMIT 0, $hack_subject_num");
复制代码


修改为
  1. $query = $db->query("SELECT

  2. dateline,tid,subject,author,views,replies,lastpost,lastposter,digest FROM

  3. {$tablepre}threads WHERE digest>'0' AND fid NOT IN(0) ORDER BY dateline DESC

  4. LIMIT 0, $hack_subject_num");
复制代码


就可以了!


记得更新缓存哦!

[ 本帖最后由 tianyo 于 2006-7-24 11:36 编辑 ]
回复

使用道具 举报

xjbl 发表于 2006-7-20 13:58:04 | 显示全部楼层
纯支持了..
回复

使用道具 举报

荣誉会员2006 发表于 2006-7-20 13:58:36 | 显示全部楼层
已安装 纯支持了



回复

使用道具 举报

freddy 发表于 2006-7-20 13:58:57 | 显示全部楼层
支持你!等我升了D5后装
回复

使用道具 举报

aboutcms 发表于 2006-7-20 14:02:08 | 显示全部楼层
up
回复

使用道具 举报

big888 发表于 2006-7-20 15:26:04 | 显示全部楼层
紀錄升級..
回复

使用道具 举报

jjpan 发表于 2006-7-20 16:21:51 | 显示全部楼层
等升级了再说
回复

使用道具 举报

liubingf 发表于 2006-7-20 17:28:06 | 显示全部楼层
强烈支持!!!
回复

使用道具 举报

liubingf 发表于 2006-7-20 17:39:59 | 显示全部楼层
后面的等级排行的图标不能显示.但在帖子中图标显示是正常的.
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 12:33 , Processed in 0.030760 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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