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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] TOPLIST_首页四格_全Cache版_By oytktk

[复制链接]
oytktk 发表于 2006-1-16 17:05:56 | 显示全部楼层 |阅读模式

           原创: oytktk(靖飒)               




功能说明:

1、 全CACHE版,首页不加查询.

2、 可折叠式,并且   折叠后不加载数据,以减轻本插件占用的少许资源(资源很重要啊..)

3、 第一格为最新发布的主题, 第二格为最新回复的主题(回复>0), 第三格目前为随机精华贴抽取.

      第四格是浏览或回复最多的主题;

4、 自行开发:  第三格和第四格,只要自己改一改就可以改为其它的自定义功能(有空发发教程)...


安装说明:
原创: oytktk(靖飒)

1. 上传附件到论坛的模板目录...

2. include/cache.func.php

查找(≈60行):


  1. 'medals'        => array('medals')
复制代码



上面加:

  1.                 'toplist'        => array('newthread', 'newreply', 'topdigest', 'topviews'),//TOPLIST_首页四格_全Cache版_By oytktk
复制代码


继续(≈254行):


  1. case 'medals':
  2.                         $table = 'medals';
  3.                         $cols = 'medalid, name, image';
  4.                         $conditions = "WHERE available='1'";
  5.                         break;
复制代码


上面加:


  1.                
  2.                 //首页四格TOPLIST_CACHE版, By oytktk 代码首
  3.                 case 'newthread':
  4.                         $table = 'threads t';
  5.                         $cols = 't.tid, t.fid, t.author, t.subject, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  6.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE t.displayorder!='-1' ORDER BY t.dateline DESC LIMIT 0, 10";
  7.                         break;

  8.                 case 'newreply':
  9.                         $table = 'threads t';
  10.                         $cols = 't.tid, t.fid, t.author, t.subject, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  11.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE t.replies>0 and t.displayorder!='-1'  ORDER BY t.lastpost DESC LIMIT 0, 10";
  12.                         break;
  13.                 case 'topdigest':
  14.                         $table = 'threads t';
  15.                         $cols = 't.tid, t.fid, t.author, t.subject, t.digest, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  16.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE digest>0 ORDER BY rand() LIMIT 0, 10";
  17.                         break;
  18.                
  19.                 case 'topviews':
  20.                         $table = 'threads t';
  21.                         $view = rand(1,3)==1 ? 'views' : 'replies';
  22.                         $cols = 't.tid, t.fid, t.author, t.subject, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  23.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE t.displayorder!='-1' ORDER BY t.$view DESC LIMIT 0, 10";
  24.                         break;

  25.                 //首页四格TOPLIST_CACHE版, By oytktk 代码尾
复制代码


再找(≈265行):


  1. case 'settings':
  2.                         while($setting = $db->fetch_array($query)) {
复制代码


上面加:




  1.                 //首页四格TOPLIST_CACHE版, By oytktk 代码首

  2.                 case 'newthread':
  3.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  4.                         while($topthread = $db->fetch_array($query)) {
  5.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  6.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  7.                                 $topthread['subjectc'] = cutstr($topthread['subject'], 28);
  8.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  9.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $timeoffset * 3600);
  10.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $timeoffset * 3600);
  11.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  12.                                 $data[] = $topthread;
  13.                         }
  14.                         break;

  15.                 case 'newreply':
  16.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  17.                         while($topthread = $db->fetch_array($query)) {
  18.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  19.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  20.                                 $topthread['subjectc'] = cutstr($topthread['subject'], 26);
  21.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  22.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $timeoffset * 3600);
  23.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $timeoffset * 3600);
  24.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  25.                                 $data[] = $topthread;
  26.                         }
  27.                         break;

  28.                 case 'topdigest':
  29.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  30.                         while($topthread = $db->fetch_array($query)) {
  31.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  32.                                 $digest = array('1'=>'[Ⅰ]','2'=>'[Ⅱ]','3'=>'[Ⅲ]');
  33.                                 $topthread['subjectc'] = $digest[$topthread['digest']]."-".cutstr($topthread['subject'], 23);
  34.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  35.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  36.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $timeoffset * 3600);
  37.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $timeoffset * 3600);
  38.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  39.                                 $data[] = $topthread;
  40.                         }
  41.                         break;

  42.                 case 'topviews':
  43.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  44.                         while($topthread = $db->fetch_array($query)) {
  45.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  46.                                 $topthread['subjectc'] = cutstr($topthread['subject'], 32);
  47.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  48.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  49.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $timeoffset * 3600);
  50.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $timeoffset * 3600);
  51.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  52.                                 $data[] = $topthread;
  53.                         }
  54.                         break;


  55.                 //首页四格TOPLIST_CACHE版, By oytktk 代码尾
复制代码



3. include/newthread.inc.php

查找(≈177行):

  1. updatepostcredits('+', $discuz_uid, $postcredits);
复制代码


下面加:


  1.                 require_once DISCUZ_ROOT.'./include/cache.func.php';
  2.                 updatecache('newthread');
复制代码


4. include/newreply.inc.php

查找(≈157行):

  1. updatepostcredits('+', $discuz_uid, $replycredits);
复制代码


下面加:


  1.                 require_once DISCUZ_ROOT.'./include/cache.func.php';
  2.                 updatecache('newthread');
复制代码


5. include/editpost.inc.php

查找(≈262行):

  1. updatepostcredits('-', $orig['authorid'], ($isfirstpost ? $postcredits : $replycredits));
复制代码


下面加:


  1.                 require_once DISCUZ_ROOT.'./include/cache.func.php';
  2.                 updatecache('newthread');
复制代码


6. index.php

查找(≈约56行):

  1. $forumlist = $catforumlist = $forums = $catforums = $categories = $collapse = array();
复制代码


下面加:


  1.         //首页四格TOPLIST_CACHE版, By oytktk 代码首
  2.         if(!isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'category_hk2 ') === FALSE) {
  3.                 $categorys_hk2 = 'collapsed_no.gif';
  4.                 $collapse['category_hk2'] = '';
  5.         } else {
  6.                 $categorys_hk2 = 'collapsed_yes.gif';
  7.                 $collapse['category_hk2'] = 'display: none';
  8.         }
  9.        
  10.         if($categorys_hk2 == 'collapsed_no.gif'){
  11.         require_once DISCUZ_ROOT.'./forumdata/cache/cache_toplist.php';
  12.         $toplistloop = $_DCACHE['newthread'];
  13.         }
  14.         //首页四格TOPLIST_CACHE版, By oytktk 代码尾
复制代码


7. topicadmin.php

查找(≈657行):

  1. showmessage((isset($resultarray['message']) ? $resultarray['message'] : 'admin_succeed'),
复制代码


上面加:


  1.         require_once DISCUZ_ROOT.'./include/cache.func.php';
  2.         updatecache('newthread');
复制代码


8. templates\default\index.htm

查找(≈32行):

  1. <!--{if empty($gid)}-->
  2.         <table cellspacing="{INNERBORDERWIDTH}" cellpadding="{TABLESPACE}" width="{TABLEWIDTH}" align="center" class="tableborder">
  3.         <tr class="header"><td colspan="3">$bbname {lang index_announcements}</td></tr>
  4.         <tr class="altbg2" align="center">
  5.         <td colspan="3" align="center">
  6.         <!--{if empty($announcements)}-->
  7.                 {lang index_noannouncement}
  8.         <!--{else}-->
  9.                 <marquee direction="left" scrollamount="3" onMouseOver="this.stop();" onMouseOut="this.start();">
  10.                 $announcements
  11.                 </marquee>
  12.         <!--{/if}-->
  13.         </td></tr></table><br>
  14. <!--{/if}-->
复制代码


替换为:


  1. <!--{if empty($gid)}-->
  2. {template toplist}
  3. <!--{/if}-->
复制代码


完工....

后台缓存刷新一下下...

[ 本帖最后由 oytktk 于 2007-8-24 09:14 编辑 ]

本帖子中包含更多资源

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

x
5569811 发表于 2006-1-16 17:07:59 | 显示全部楼层
晕!哈哈
回复

使用道具 举报

jiayism 发表于 2006-1-16 17:10:28 | 显示全部楼层
晕,不严肃!
回复

使用道具 举报

qq6688 发表于 2006-1-16 17:16:17 | 显示全部楼层
尿急 呵呵
回复

使用道具 举报

freddy 发表于 2006-1-16 17:17:02 | 显示全部楼层
我晕!
回复

使用道具 举报

默契网管 发表于 2006-1-16 17:17:33 | 显示全部楼层
晕哦。
回复

使用道具 举报

freeher 发表于 2006-1-16 17:19:03 | 显示全部楼层
啊。木JJ的小O 老师终于肯发了。 
回复

使用道具 举报

lj80117 发表于 2006-1-16 17:21:30 | 显示全部楼层
我晕!
回复

使用道具 举报

星空曙光 发表于 2006-1-16 17:22:44 | 显示全部楼层
来大的都快大好了........
回复

使用道具 举报

freeher 发表于 2006-1-16 17:23:01 | 显示全部楼层
??
掉厕所里了?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 20:28 , Processed in 0.027428 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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