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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 首页N格加速补丁(修正了“从未”的问题)

[复制链接]
wxyuan90 发表于 2006-11-5 13:38:43 | 显示全部楼层 |阅读模式
.纵观目前DZ众多的首页N格,调用数据的方法除了JS调用以外大概只有2种
第一种是 oytktk 制作的以修改cache.inc.php加
  1. //首页四格TOPLIST_CACHE版, By oytktk 代码首
复制代码
为标志的调用,用了缓存但是要修改CACHE.INC.PHP,不仅安装难度较大而且也比较危险,一旦修改出错可能造成各可意料的后果
这种类型的首页N格由于卸载比较困难,而且也用了缓存,速度不错,不推荐使用本补丁

另一种更为常见的是不使用缓存的版本,貌似代码是从STAT.PHP里面获取的
一般多数有如下标志
(修改index.php)
$hack_subject_len=xx; //标题最多显示的字数
$hack_subject_num=yy; //最新主题与回复显示的数量

这种首页四格相对安装简单,风险也较小,但是使用过的站长可以注意一下,一般会给首页增加相当多的查询数,运行速度也比较慢,推荐使用这类首页N格的站长可以使用本补丁,加速效果相当明显

目前特性:
1、使用CACHE,速度快
2、支持按照时间自动更新CACHE、发贴后更新、回帖后更新等多种更新方式
3、支持过滤指定板块
4、支持过滤审核中的帖子
5、支持某个时间段不更新缓存文件
6、支持主题、作者限制字数(限首页5格3叠,其他有可能需要修改模板)

补丁方法:补丁前注意备份原文件!推荐自己做好注释
1、编辑附件中的PHP文件(可以对照注释按自己需要修改),上传
2、删除index.php中相关查询语句(在2楼提供),在index.php尾部
  1. include template('discuz');
复制代码
之前加
  1. require_once DISCUZ_ROOT.'./include/toplist_cache.php';
复制代码
3、完成,完成后首次访问主页可能空白(生成缓存文件),刷新即可

另:发贴/回帖后自动更新首页N格的缓存数据(不必等设定的更新时间)
回帖后更新:
修改/include/newreply.inc.php
  1. if($allowuseblog && $isblog && $blog)
复制代码
前面加
  1. $topref=true;
  2. require_once DISCUZ_ROOT.'./include/toplist_cache.php';
复制代码
发贴后更新:
修改/include/newthread.inc.php
  1. if($allowuseblog && $isblog && $blog)
复制代码
前面加
  1. $topref=true;
  2. require_once DISCUZ_ROOT.'./include/toplist_cache.php';
复制代码
从未修正方法:将原有
  1. $topref=true;
  2. require_once DISCUZ_ROOT.'./include/toplist_cache.php';
复制代码
删除按照更新过的重新添加

[ 本帖最后由 wxyuan90 于 2007-8-22 11:58 编辑 ]

本帖子中包含更多资源

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

x
 楼主| wxyuan90 发表于 2006-11-5 13:39:13 | 显示全部楼层
注意一定要删除相关查询语句,不然起不到加速的作用!!

首页四格(访客信息+论坛档案+最新主题+最新回复)+新手DIY方案 For Discuz! 5.0.0
https://discuz.dismall.com/thread-418450-1-1.html
相关语句:

  1. //--首页四格增加 Start--
  2. $hack_subject_len=34; //标题最多显示的字数
  3. $hack_subject_num=12; //最新主题与回复显示的数量

  4. //最新主题
  5. $query = $db->query("SELECT dateline,tid,subject,author,views,replies FROM {$tablepre}threads and displayorder!=-1 and displayorder!=-2 ORDER BY dateline DESC LIMIT 0, $hack_subject_num");
  6. while($thread = $db->fetch_array($query)) {
  7.          $thread[subject0]=$thread[subject];
  8.         $thread['subject'] = cutstr($thread['subject'], $hack_subject_len);
  9.         $hack_newthreads_threadlist[] = $thread;
  10. }

  11. $threadview = $threadreply = array();

  12. //最新回复
  13. $query = $db->query("SELECT replies, tid, subject,author,views,lastposter FROM {$tablepre}threads where replies !=0 and displayorder!=-1 and displayorder!=-2 ORDER BY lastpost DESC LIMIT 0, $hack_subject_num");
  14.         while($thread = $db->fetch_array($query)) {
  15.                  $thread[subject0]=$thread[subject];
  16.                 $thread[subject] = cutstr($thread[subject], $hack_subject_len);
  17.                 $threadreply[] = $thread;
  18.         }
  19. //--首页四格增加 End--
复制代码


Dz首页5格3叠dingo免升级数据库绿色查询预览版 V2.0.1024 For Dz5.0 [最后更新1024]
https://discuz.dismall.com/thread-431565-1-1.html
此插件的下个版本将采用本补丁,大家期待下
Dz首页5格3叠dingo免升级数据缓存版 For Dz5.0 [全DIV+CSS版]
相关语句:

  1. ///////////////////////////////////////////////////////////////////////
  2. /////Dz首页5格3叠dingo免升级数据库绿色查询版 BY Rockoy And Flash菲/////
  3. ////////////////////注意:以下代码原作者是happy0429//////////////////////////
  4. ///////////////////////////////////////////////////////////////////////
  5. $hack_subject_len=40; //每个标题最多显示得字数
  6. $hack_subject_num=10; //需要显示记录数

  7. $hack_newthreads_threadlist = array();
  8. $thread = array();
  9. //最新贴开始
  10. $query = $db->query("SELECT dateline,tid,subject,author,views,replies,lastpost,lastposter FROM {$tablepre}threads WHERE fid  ORDER BY dateline DESC LIMIT 0, $hack_subject_num");

  11. while($thread = $db->fetch_array($query)) {
  12.         $thread['forumname'] = $thread['name'];
  13.         $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] + $timeoffset * 3600);
  14.         $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread[lastpost] + ($timeoffset * 3600));
  15.         $thread[subject0]=$thread[subject];
  16.         $thread['subject'] = cutstr($thread['subject'], $hack_subject_len);
  17.         $hack_newthreads_threadlist[] = $thread;
  18. }
  19. //最新贴结束

  20. $threadview = $threadreply = array();
  21. //最新回复开始
  22. $query = $db->query("SELECT dateline,tid,subject,author,views,replies,lastpost,lastposter FROM {$tablepre}threads WHERE fid NOT IN(199,999) AND replies > 0  ORDER BY lastpost DESC LIMIT 0, $hack_subject_num");
  23.         while($thread = $db->fetch_array($query)) {
  24.                 $thread[subject0]=$thread[subject];
  25.                 $thread['forumname'] = $thread['name'];
  26.                 $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] + $timeoffset * 3600);
  27.                 $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread[lastpost] + ($timeoffset * 3600));
  28.                 $thread[subject] = cutstr($thread[subject], $hack_subject_len);
  29.                 $threadreply[] = $thread;
  30.         }
  31. //最新回复结束
  32. //热帖开始
  33. $hack_cut_str = 40; //修改标题显示字数
  34. $hack_cut_strauthor = 10; //需要显示记录数
  35. //这个可以选择安装或者不安装//
  36. //热贴指定天数//
  37. $this_time= time();
  38. $sort_time = $today - ( 60*60*24*9999); //7天内
  39. $new_hot_threadlist = array();
  40. $mthread = array();
  41. $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 and t.dateline > $sort_time ORDER BY t.views DESC LIMIT 0, 10");
  42. while($mthread = $db->fetch_array($query)) {
  43.         $mthread['forumname'] = $mthread['name'];
  44.         $mthread['view_subject'] = cutstr($mthread['subject'],$hack_cut_str);
  45.         $mthread['view_lastposter'] = cutstr($mthread['lastposter'],$hack_cut_strauthor);
  46. $mthread['date']= gmdate("$dateformat $timeformat", $mthread['dateline'] + $timeoffset * 3600);
  47.         $mthread['lastreplytime']= gmdate("$dateformat $timeformat", $mthread[lastpost] + ($timeoffset * 3600));
  48.         if($mthread['highlight']) {
  49.                 $string = sprintf('%02d', $mthread['highlight']);
  50.                 $stylestr = sprintf('%03b', $string[0]);

  51.                 $mthread['highlight'] = 'style="';
  52.                 $mthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  53.                 $mthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  54.                 $mthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  55.                 $mthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
  56.                 $mthread['highlight'] .= '"';
  57.         } else {
  58.                 $mthread['highlight'] = '';
  59.         }
  60.         $new_hot_threadlist[] = $mthread;
  61. }
  62. //热帖结束
  63. //精华帖开始
  64. $hack_cut_str =40; //修改标题显示字数
  65. $hack_cut_strauthor = 10; //需要显示记录数
  66. $new_digest_threadlist = array();
  67. $dthread = array();
  68. $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, 10"); //修改显示帖子条数
  69. while($dthread = $db->fetch_array($query)) {
  70.         $dthread['forumname'] = $dthread['name'];
  71.         $dthread['view_subject'] = cutstr($dthread['subject'],$hack_cut_str);
  72.         $dthread['view_author'] = cutstr($dthread['author'],$hack_cut_strauthor);
  73.         $dthread['date']= gmdate("$dateformat $timeformat", $dthread['dateline'] + $timeoffset * 3600);
  74.         $dthread['lastreplytime']= gmdate("$dateformat $timeformat", $dthread[lastpost] + ($timeoffset * 3600));
  75.         if($dthread['highlight']) {
  76.                 $string = sprintf('%02d', $dthread['highlight']);
  77.                 $stylestr = sprintf('%03b', $string[0]);
  78.                 $dthread['highlight'] = 'style="';
  79.                 $dthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  80.                 $dthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  81.                 $dthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  82.                 $dthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
  83.                 $dthread['highlight'] .= '"';
  84.         } else {
  85.                 $dthread['highlight'] = '';
  86.         }
  87.         $new_digest_threadlist[] = $dthread;
  88. }
  89. //精华帖结束
  90. ///////////////////////////////////////////////////////////////////////
  91. ////////////////////注意:以上代码原作者是happy0429///////////////////////////
  92. /////Dz首页5格3叠dingo免升级数据库绿色查询版 BY Rockoy And Flash菲/////
  93. ///////////////////////////////////////////////////////////////////////
复制代码

  1. $malenum = $femalenum = $nofmnum = 0;
  2. $query = $db->query("SELECT gender FROM {$tablepre}members");
  3. while($chk = $db->fetch_array($query)) {
  4.         if($chk['gender'] == '1') {
  5.                 $malenum++;
  6.         } else if($chk['gender'] == '2') {
  7.                 $femalenum++;
  8.         } else {
  9.                 $nofmnum++;
  10.         }
  11. }
复制代码

[ 本帖最后由 wxyuan90 于 2006-11-5 15:58 编辑 ]
回复

使用道具 举报

 楼主| wxyuan90 发表于 2006-11-5 14:58:35 | 显示全部楼层
其他首页N格可以对比着修改,或者把你用的首页N格链接发一下,我来指出调用的代码。。。
回复

使用道具 举报

3265 发表于 2006-11-5 15:49:05 | 显示全部楼层
  1. 发贴后更新:
  2. 修改/include/newreply.inc.php



  3. [Copy to clipboard]CODE:
  4. updatepostcredits('+', $discuz_uid, $postcredits);
复制代码


没找到呀
回复

使用道具 举报

 楼主| wxyuan90 发表于 2006-11-5 15:49:21 | 显示全部楼层
没找到?把你的newreply.inc.php发上来看看。。
回复

使用道具 举报

 楼主| wxyuan90 发表于 2006-11-5 15:51:26 | 显示全部楼层
我汗。。写错了

是newthread.inc.php
抱歉
回复

使用道具 举报

3265 发表于 2006-11-5 16:04:26 | 显示全部楼层
没成功
能否直接发个四格插件呀
回复

使用道具 举报

 楼主| wxyuan90 发表于 2006-11-5 16:07:45 | 显示全部楼层
……………汗水。。这个是补丁,针对已经装好的首页N格的插件做加速优化的……

新鲜出路的5格3折缓存DIV版
https://discuz.dismall.com/thread-447736-1-1.html
回复

使用道具 举报

~云飞满天~ 发表于 2006-11-5 16:16:12 | 显示全部楼层
含金量高的帖子我都是先回复再细看
回复

使用道具 举报

3265 发表于 2006-11-5 16:25:42 | 显示全部楼层
谢谢 我再去装一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 15:07 , Processed in 0.028475 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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