来源:未知 时间:2014-12-30 16:02 作者:xxadmin 阅读:次
[导读] emlog博客程序默认是的总的浏览数排序,这段热门日志的代码在include/model/log_model.php文件中第342~355行,官方默认的log_model.php文件,你自己修改过的,我也不知道在哪行. 其中第346行的mysql查询...
emlog博客程序默认是的总的浏览数排序,这段热门日志的代码在include/model/log_model.php文件中第342~355行,官方默认的log_model.php文件,你自己修改过的,我也不知道在哪行. 其中第346行的mysql查询语句,代码如下: $sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY views DESC, comnum DESC LIMIT 0, $num"; 从emlog_blog读出不隐藏(hide='n')和是日志的(type='blog',这个去掉了页面)日志,ORDER BY views DESC,comnum DESC LIMIT 0,$num这里$num设置显示的条数比如5条,那么以views(浏览数)降序排列,如果浏览数相同的话以评论数定先后顺序,取5条。 从上面代码中可以看出,越早以前的文章的话阅读数肯定是比较多,那么导致这个热门日志排行上的文章几乎是不变的,所以个人认为有点不妥. 下面来改造代码(属于官方解释的HACK程序,有一定的危险,操作前先备份数据). 1.热门日志改成热评日志(以评论数作为排行,评论数相同以浏览数定先后顺序),只要交换下views和comnum就可以了,修改后的代码如下:
$sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY comnum DESC,views DESC LIMIT 0, $num";
PS:适合平常日志评论比较多的博客,如果平常评论比较少的话,变化也是不大的. 2.热门日志改成本月热门日志,规定取日志发表的时间范围后以浏览数降序,相同浏览数的以评论数的降序排列,这里要分2种情况:一种是本月的,还有一种是最近30天的. 那么先来说说本月的,得到本月起点的时间戳,代码如下:
修改后的完整代码:
那么最近30天也就简单了,只要把$t的那个改改就可以了,代码如下: $t = time() - 3600 * 24 * 30;//以当前访问的时间戳最近30天 3.全部文章按当月的浏览数降序排列,相同浏览数的按评论数降序排列,这里对数据库就需要添加2个字段,执行下面查询语句,数据库前缀默认为emlog. 添加最后浏览的时间的字段: ALTER TABLE emlog_blog ADD lastview bigint(20) NOT NULL default '0' 添加本月浏览数的字段: ALTER TABLE emlog_blog ADD monviews mediumint(8) unsigned NOT NULL default '0' 数据库修改完毕,下面是log_model.php程序的修改。第289~296行增加阅读次数,这里这个执行总浏览数和当月浏览数每次浏览+1,还有下月清0,完整代码如下:
修改热门日志代码中的views改为monviews,代码如下: $sql = "SELECT gid,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY monviews DESC, comnum DESC LIMIT 0, $num"; PS:最后再说几句,这里只是简单的修改下,还有很多种修改热门日志排列的方法. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com