crx349 发表于 2015-3-26 09:57:43

帝国Cms 7.2 实现日 周 月 点击排行解决方案(付推荐排行)

1.修改 \e\a\action\ShowInfo.php 文件

搜索:
$empire->query("update {$dbtbpre}ecms_".$tbname." set onclick=onclick+1 where id='$add' limit 1");

修改为:
$empire->query("update {$dbtbpre}ecms_".$tbname." set onclick=onclick+1,monthclick=monthclick+1,weekclick=weekclick+1,dayclick=weekclick+1 where id='$add' limit 1");

2.添加主表字段
monthclickint 10
weekclick int 10
dayclick int 10

3.更新缓存 刷新动态页面这样,每次访问一篇文章后,三个字段都会增加次数。

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

任务名:月点击清空程序
时间选为每月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即可。

如万能标签:

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

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


原理为:
点击数多个字段都同时增加,但是月点击和周点击会定时清零,每月或每周都会重新计算。
备注:以上教程在帝国7.2伪静态模式下使用完全Ok
同理推荐也可以这样做:
**** Hidden Message *****
本教程有无限星辰工作室独家提供,转帖请注明地址和作者,谢谢
页: [1]
查看完整版本: 帝国Cms 7.2 实现日 周 月 点击排行解决方案(付推荐排行)