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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 最新四格调用(最新话题/最新回复/热门话题/精华文章)+美化+作者[FOR 4.1]

[复制链接]
3q 发表于 2006-3-14 11:21:14 | 显示全部楼层 |阅读模式
适用版本:  discuz!4.1.0 (discuz!4.0见插件整理区)
插件作者:  alan888
插件修改:  3q(sanshou)
特别借鉴:  whitegerry(老W)
修改难度:  易
数据库升级:  无

站点演示: http://bbs.d1w2.com

(注明:此插件会增加查询)

修改方式:

1.打开  index.php:

查找:


  1. require_once DISCUZ_ROOT.'./include/forum.func.php';
复制代码


下面添加:


  1. require_once DISCUZ_ROOT.'./include/misc.func.php';
复制代码


继续查找:


  1. $newthreads = round(($timestamp - $lastvisit + 600) / 1000) * 1000;
复制代码


下面添加:


  1. //---------------hack Meminfo start
  2. if(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "MSIE 6.0")) {
  3.                 $visitor_browser = "Internet Explorer 6.0";
  4.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "MSIE 5.5")) {
  5.                 $visitor_browser = "Internet Explorer 5.5";
  6.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "MSIE 5.0")) {
  7.                 $visitor_browser = "Internet Explorer 5.0";
  8.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "MSIE 4.01")) {
  9.                 $visitor_browser = "Internet Explorer 4.01";
  10.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "NetCaptor")) {
  11.                 $visitor_browser = "NetCaptor";
  12.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Netscape")) {
  13.                 $visitor_browser = "Netscape";
  14.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Lynx")) {
  15.                 $visitor_browser = "Lynx";
  16.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Opera")) {
  17.                 $visitor_browser = "Opera";
  18.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Konqueror")) {
  19.                 $visitor_browser = "Konqueror";
  20.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Mozilla")) {
  21.                 $visitor_browser = "Mozilla";
  22.         } else {
  23.                 $visitor_browser = "其它";
  24.         }
  25. //上面的是浏览器//
  26.         if(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "NT 5.1")) {
  27.                 $visitor_os = "Windows XP";
  28.         }elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "NT 5.2")) {
  29.                 $visitor_os = "Windows Server 2003";
  30.         }elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "NT 5")) {
  31.                 $visitor_os = "Windows 2000";
  32.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "4.9")) {
  33.                 $visitor_os = "Windows ME";
  34.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "NT 4")) {
  35.                 $visitor_os = "Windows NT 4.0";
  36.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "98")) {
  37.                 $visitor_os = "Windows 98";
  38.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "95")) {
  39.                 $visitor_os = "Windows 95";
  40.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Mac")) {
  41.                 $visitor_os = "Mac";
  42.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Linux")) {
  43.                 $visitor_os = "Linux";
  44.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Unix")) {
  45.                 $visitor_os = "Unix";
  46.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "FreeBSD")) {
  47.                 $visitor_os = "FreeBSD";
  48.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "SunOS")) {
  49.                 $visitor_os = "SunOS";
  50.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "BeOS")) {
  51.                 $visitor_os = "BeOS";
  52.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "OS/2")) {
  53.                 $visitor_os = "OS/2";
  54.         } elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "PC")) {
  55.                 $visitor_os = "Macintosh";
  56.         }elseif(strpos($HTTP_SERVER_VARS[HTTP_USER_AGENT], "AIX")) {
  57.                 $visitor_os = "AIX";
  58.         } else {
  59.                 $visitor_os = "其他";
  60.         }

  61.         $mem_home = convertip($onlineip, $datadir = "./");
  62. //info//
  63. $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  64. //新贴//
  65. $hack_cut_str =20; //修改标题显示字数
  66. $hack_cut_strauthor = 9;
  67. $new_post_threadlist = array();
  68. $nthread = array();
  69. $query = $db->query("SELECT t.*, f.name FROM {$tablepre}threads t, {$tablepre}forums f WHERE t.fid<>'$fid' AND f.fid=t.fid ORDER BY t.dateline DESC LIMIT 0, 5"); //修改显示帖子条数
  70. while($nthread = $db->fetch_array($query)) {
  71.         $nthread['forumname'] = $nthread['name'];
  72.         $nthread['view_subject'] = cutstr($nthread['subject'],$hack_cut_str);
  73.         $nthread['view_author'] = cutstr($nthread['author'],$hack_cut_strauthor);
  74.         $nthread['date']= gmdate("$dateformat $timeformat", $nthread['dateline'] + $timeoffset * 3600);
  75.         $nthread['lastreplytime']= gmdate("$dateformat $timeformat", $nthread[lastpost] + ($timeoffset * 3600));
  76.         if($nthread['highlight']) {
  77.                 $string = sprintf('%02d', $nthread['highlight']);
  78.                 $stylestr = sprintf('%03b', $string[0]);

  79.                 $nthread['highlight'] = 'style="';
  80.                 $nthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  81.                 $nthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  82.                 $nthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  83.                 $nthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
  84.                 $nthread['highlight'] .= '"';
  85.         } else {
  86.                 $nthread['highlight'] = '';
  87.         }
  88.         $new_post_threadlist[] = $nthread;
  89. }
  90. //新贴//

  91. //新回覆
  92. $hack_cut_str = 20; //修改标题显示字数
  93. $hack_cut_strauthor = 9;
  94. $new_reply_threadlist = array();
  95. $rthread = array();
  96. $query = $db->query("SELECT t.*, f.name FROM {$tablepre}threads t, {$tablepre}forums f WHERE t.fid<>'$fid' AND f.fid=t.fid  AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 ORDER BY t.lastpost DESC LIMIT 0, 5"); //修改显示帖子条数
  97. while($rthread = $db->fetch_array($query)) {
  98.         $rthread['forumname'] = $rthread['name'];
  99.         $rthread['view_subject'] = cutstr($rthread['subject'],$hack_cut_str);
  100.         $rthread['view_lastposter'] = cutstr($rthread['lastposter'],$hack_cut_strauthor);
  101. $rthread['date']= gmdate("$dateformat $timeformat", $rthread['dateline'] + $timeoffset * 3600);
  102.         $rthread['lastreplytime']= gmdate("$dateformat $timeformat", $rthread[lastpost] + ($timeoffset * 3600));
  103.         if($rthread['highlight']) {
  104.                 $string = sprintf('%02d', $rthread['highlight']);
  105.                 $stylestr = sprintf('%03b', $string[0]);

  106.                 $rthread['highlight'] = 'style="';
  107.                 $rthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  108.                 $rthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  109.                 $rthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  110.                 $rthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
  111.                 $rthread['highlight'] .= '"';
  112.         } else {
  113.                 $rthread['highlight'] = '';
  114.         }
  115.         $new_reply_threadlist[] = $rthread;
  116. }
  117. //回复//

  118. //热帖
  119. $hack_cut_str = 20; //修改标题显示字数
  120. $hack_cut_strauthor = 9;
  121. $new_hot_threadlist = array();
  122. $mthread = array();
  123. $query = $db->query("SELECT t.*, f.name FROM {$tablepre}threads t, {$tablepre}forums f WHERE t.fid<>'$fid' AND f.fid=t.fid  AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 ORDER BY t.replies DESC LIMIT 0, 5"); //修改显示帖子条数
  124. while($mthread = $db->fetch_array($query)) {
  125.         $mthread['forumname'] = $mthread['name'];
  126.         $mthread['view_subject'] = cutstr($mthread['subject'],$hack_cut_str);
  127.         $mthread['view_lastposter'] = cutstr($mthread['lastposter'],$hack_cut_strauthor);
  128. $mthread['date']= gmdate("$dateformat $timeformat", $mthread['dateline'] + $timeoffset * 3600);
  129.         $mthread['lastreplytime']= gmdate("$dateformat $timeformat", $mthread[lastpost] + ($timeoffset * 3600));
  130.         if($mthread['highlight']) {
  131.                 $string = sprintf('%02d', $mthread['highlight']);
  132.                 $stylestr = sprintf('%03b', $string[0]);

  133.                 $mthread['highlight'] = 'style="';
  134.                 $mthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  135.                 $mthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  136.                 $mthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  137.                 $mthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
  138.                 $mthread['highlight'] .= '"';
  139.         } else {
  140.                 $mthread['highlight'] = '';
  141.         }
  142.         $new_hot_threadlist[] = $mthread;
  143. }
  144. //热帖//

  145. //精华帖
  146. $hack_cut_str =20; //修改标题显示字数
  147. $hack_cut_strauthor = 9;
  148. $new_digest_threadlist = array();
  149. $dthread = array();
  150. $query = $db->query("SELECT t.*, f.name FROM {$tablepre}threads t, {$tablepre}forums f WHERE digest>'0' AND t.fid<>'$fid' AND f.fid=t.fid ORDER BY t.dateline DESC LIMIT 0, 5"); //修改显示帖子条数
  151. while($dthread = $db->fetch_array($query)) {
  152.         $dthread['forumname'] = $dthread['name'];
  153.         $dthread['view_subject'] = cutstr($dthread['subject'],$hack_cut_str);
  154.         $dthread['view_author'] = cutstr($dthread['author'],$hack_cut_strauthor);
  155.         $dthread['date']= gmdate("$dateformat $timeformat", $dthread['dateline'] + $timeoffset * 3600);
  156.         $dthread['lastreplytime']= gmdate("$dateformat $timeformat", $dthread[lastpost] + ($timeoffset * 3600));
  157.         if($dthread['highlight']) {
  158.                 $string = sprintf('%02d', $dthread['highlight']);
  159.                 $stylestr = sprintf('%03b', $string[0]);

  160.                 $dthread['highlight'] = 'style="';
  161.                 $dthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  162.                 $dthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  163.                 $dthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  164.                 $dthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
  165.                 $dthread['highlight'] .= '"';
  166.         } else {
  167.                 $dthread['highlight'] = '';
  168.         }
  169.         $new_digest_threadlist[] = $dthread;
  170. }
  171. //精华帖//

复制代码


2. 修改 index.htm:

查找:


  1. <!--{loop $forumlist $key $forum}-->
  2.         <!--{if $forum['type'] == 'group' && $forumlist[($key + 1)]['type'] == 'forum'}-->
复制代码


在上面添加:


  1. <div class="maintable">
  2. <table cellspacing="{INNERBORDERWIDTH}" cellpadding="{TABLESPACE}" width="{TABLEWIDTH}" align="center" class="tableborder">
  3.         <tr class="header">
  4.     <td class="header" width=25% align=center><b>≡最新话题≡</b></td>
  5.     <td class="header" width=25% align=center><b>≡最新回复≡</b></td>
  6.     <td class="header" width=25% align=center><b>≡热门话题≡</b></td>
  7.     <td class="header" width=25% align=center><b>≡精华文章≡</b></td>
  8.     </tr>
  9.         <tr>
  10.         <td class="altbg1">
  11.         <!--{loop $new_post_threadlist $nthread}-->
  12.         
  13. <table border=0 width='100%' cellspacing=2><tr><td height=12 width='78%'><FONT face=Wingdings>z</FONT> <!--{if $nthread[replies]}--><a href="redirect.php?tid=$nthread[tid]&goto=newpost" $nthread['highlight'] title="最新话题 {LF}所在论坛: $nthread[forumname]{LF}主题标题: $nthread[subject] {LF}主题作者: $nthread[author]{LF}发表时间: $nthread[date]{LF}浏览次数: $nthread[views] 次 {LF}回复次数: $nthread[replies] 次{LF}最后回复: $nthread[lastreplytime]{LF}{lang lastpost}: $nthread[lastposter]">$nthread[view_subject]</a>
  14. <!--{else}-->
  15. <a href="redirect.php?tid=$nthread[tid]&goto=newpost" $nthread['highlight'] title="最新话题 {LF}所在论坛: $nthread[forumname]{LF}主题标题: $nthread[subject] {LF}主题作者: $nthread[author]{LF}发表时间{lang time}: $nthread[date]{LF}浏览次数: $nthread[views] 次 {LF}回复次数: $nthread[replies] 次{LF}{lang replies}: 暂时没有回复">$nthread[view_subject]</a><!--{/if}-->
  16. </td><td> <a href="viewpro.php?username=$nthread[author]" class="smalltxt">$nthread[view_author]</a></td></tr></table>
  17. <!--{/loop}-->
  18. </td>      
  19. <td class="altbg1">
  20. <!--{loop $new_reply_threadlist $rthread}-->
  21. <table border=0 width='100%' cellspacing=2><tr><td height=12 width='78%'><FONT face=Wingdings>z</FONT>
  22. <a href="viewthread.php?tid=$rthread[tid]" $rthread['highlight'] title="最新回复 {LF}所在论坛: $rthread[forumname]{LF}主题标题: $rthread[subject]{LF}主题作者: $rthread[author]{LF}发表时间: $rthread[date]{LF}浏览次数: $rthread[views] 次{LF}回复次数: $rthread[replies] 次{LF}最后回复: $rthread[lastreplytime]{LF}{lang lastpost}: $rthread[lastposter]">$rthread[view_subject]</a></td><td> <a href="viewpro.php?username=$rthread[lastposter]" class="smalltxt">$rthread[view_lastposter]</a></td></tr></table>
  23. <!--{/loop}-->
  24. </td>
  25. <td class="altbg1">
  26. <!--{loop $new_hot_threadlist $mthread}-->
  27. <table border=0 width='100%' cellspacing=2><tr><td height=12 width='78%'><FONT face=Wingdings>z</FONT>
  28. <a href="viewthread.php?tid=$mthread[tid]" $mthread['highlight'] title="热门话题 {LF}所在论坛: $mthread[forumname]{LF}主题标题: $mthread[subject]{LF}主题作者: $mthread[author]{LF}发表时间: $mthread[date]{LF}浏览次数: $mthread[views] 次{LF}回复次数: $mthread[replies] 次{LF}最后回复: $mthread[lastreplytime]{LF}{lang lastpost}: $mthread[lastposter]">$mthread[view_subject]</a></td><td> <a href="viewpro.php?username=$rthread[lastposter]" class="smalltxt">$mthread[view_lastposter]</a></td></tr></table>
  29. <!--{/loop}-->
  30. </td>
  31. <td class="altbg1">
  32. <!--{loop $new_digest_threadlist $dthread}-->
  33. <table border=0 width='100%' cellspacing=2><tr><td height=12 width='78%'><FONT face=Wingdings>z</FONT>
  34. <a href="viewthread.php?tid=$dthread[tid]"  $dthread['highlight'] title="精华文章 {LF}所在论坛: $dthread[forumname]{LF}主题标题: $dthread[subject]{LF}主题作者: $dthread[author]{LF}发表时间: $dthread[date]{LF}浏览次数: $dthread[views] 次{LF}回复次数: $dthread[replies] 次{LF}最后回复: $dthread[lastreplytime]{LF}{lang lastpost}: $dthread[lastposter]">$dthread[view_subject]</a></td><td> <a href="viewpro.php?username=$rthread[lastposter]" class="smalltxt">$dthread[view_author]</a></td></tr></table>
  35. <!--{/loop}-->
  36. </td></tr>
  37. </table><br>
  38. </div>
复制代码


修改完毕!!

演示图片见附件!(本人所用的是显示5条的,可依个人喜好自己修改!)

[ 本帖最后由 3q 于 2006-3-14 13:37 编辑 ]

本帖子中包含更多资源

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

x
终结者4 发表于 2006-3-14 11:24:12 | 显示全部楼层
沙发.

[ 本帖最后由 终结者4 于 2006-3-14 11:28 编辑 ]
回复

使用道具 举报

紫云杉 发表于 2006-3-14 11:26:39 | 显示全部楼层
整理区有了
回复

使用道具 举报

zjcx 发表于 2006-3-14 11:27:09 | 显示全部楼层
演示站的:Processed in 0.066058 second(s), 9 queries , Gzip enabled

增加查询的看着就不爽
回复

使用道具 举报

终结者4 发表于 2006-3-14 11:29:42 | 显示全部楼层
为何不用cache?
回复

使用道具 举报

xlcd 发表于 2006-3-14 11:31:38 | 显示全部楼层
3Q,,,支持,我站已成功修改
回复

使用道具 举报

 楼主| 3q 发表于 2006-3-14 11:36:23 | 显示全部楼层
原帖由 紫云杉 于 2006-3-14 11:26 发表
整理区有了


我的是四格的!(最新话题/最新回复/热门话题/精华文章)+美化+作者(本地窗口打开)

与整理区的不一样!

原帖由zjcx 于 2006-3-14 11:27 发表
演示站的:Processed in 0.066058 second(s), 9 queries , Gzip enabled

增加查询的看着就不爽


我说过,会增加查询,只是依个人所好选择,没有人强求你使用!9次查询,是因为我的站点还有其他东西,并不是这个,这个只增加3次查询而已!
回复

使用道具 举报

haohao036 发表于 2006-3-14 11:39:25 | 显示全部楼层
应该是4次查询。。。。刚测试了。


还有能不能在后台加个开关方便些
回复

使用道具 举报

HPotter 发表于 2006-3-14 12:09:50 | 显示全部楼层
4.1应该把这个做成插件,在后台装个开关,然后用钩子安装,这样会很方便的
回复

使用道具 举报

narutonaruto 发表于 2006-3-14 15:10:51 | 显示全部楼层
我用繁體BIG5版的後.全部分類都為"四格顯示"!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:25 , Processed in 0.029391 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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