帝国CMS教程
帝国CMS模板网>帝国CMS教程

帝国cms实现日 周 月点击排行的方法

来源:帝国CMS模板网 作者:帝国CMS教程 时间:2013-05-07
浏览:7.4千+ 收藏 点赞(12)

新增信息的排行不太符合我的要求。就自己琢磨了一套全站信息的月点击、周点击排行。需要新增几个字段及修改文件。下面开始说明:

首先,确认你需要多少个排行,比如 年排行、月排行、周排行、日排行等等。调用多少个排行,就新增多少个字段。

如我只需用 月和周排行,则在数据表中新增字段  monthclick  及  weekclick 这两个字段。选择字段类型为INT 长度一般5-7位足够了。自己看着办。

新增完后,修改 epublicViewClickindex.php 文件。

找到:

--------------------------------------------------------------------------------
$usql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set onclick=onclick+1 where id='$id' limit 1");
--------------------------------------------------------------------------------

修改为:

--------------------------------------------------------------------------------
$usql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set onclick=onclick+1,monthclick=monthclick+1,weekclick=weekclick+1 where id='$id' limit 1");
--------------------------------------------------------------------------------

这样,每次访问一篇文章后,三个字段都会增加次数。

然后在后台 计划任务 中 新增计划任务。

任务名:月点击清空程序,时间选为  每月31号或1号,自己看着办。php文件代码如下:

--------------------------------------------------------------------------------
<?php
                $usql=$empire->query("update {$dbtbpre}ecms_article set monthclick=0");   //不同的数据表,自己修改下,我用的是文章模型。所以是 article
?>
--------------------------------------------------------------------------------

再新增周点击清空:

时间选为  星期一或星期日,自己看着办。php文件代码如下:

--------------------------------------------------------------------------------
<?php
                $usql=$empire->query("update {$dbtbpre}ecms_article set weekclick=0");   //不同的数据表,自己修改下,我用的是文章模型。所以是 article
?>
--------------------------------------------------------------------------------

如果你还有其他排行字段,请自行添加。

在需用调用排行榜的地方,排序使用 order by monthclick 或者 order by weekclick  即可。

如万能标签:

[ecmsinfo]"select * from phome_ecms_article where checked=1 order by monthclick desc limit 10",10,30,0,24,7,0[/ecmsinfo]

即为调用 文章模型下,审核通过的文章,以月点击排行排序。

原理为:点击数多个字段都同时增加,但是月点击和周点击会定时清零,每月或每周都会重新计算。

希望对你有用

帝国CMS模板