附件内有修改好的文件和插件安装/卸载工具,真正实现傻瓜式操作,对于我们这种新手和小白非常友好
下载地址在文章最后
本章来讲一讲 官方默认只有总点击 无法现实帝国cms系统日、周、月点击量
而论坛上法的方法也只是多少天内的点击量
打比方有一条文章是2024年7月5号发布的
论坛上是这样调用 7天内的文章热门
[e:loop={0,9,4,0,'newstime>UNIX_TIMESTAMP()-86400*7','onclick desc'}] <li><a href="<?=$bqsr['titleurl']?>"><?=$bqr['title']?></a></li> [/e:loop]
这样调也只能调发布时间之内的七天 超过七天就不显示文章了
也就是13号就不显示了
翻了以前的论坛记录也有人很久发布了新方法就是增加 日 、周、 月字段
不过清空点击量需要手动去点击 或者开着计划任务 挂后台 有点麻烦
下面我们改一下把他变成自动清零
数据库新增timeclick表 用来储存 当日时间(daytime)本周一时间(weektime)本月初一时间(monthtime)
在数据表中新增字段 dayclick 、monthclick 及 weekclick 这三个字段。选择字段类型为INT 长度7位足够了
原理:
判断timeclick表的当日时间(daytime)不等于今天就会执行
timeclick表的daytime字段更新成今日
并且ecms_news下的dayclick字段清零
反之不执行
以此类推 周、月 也是这样
彻底拜托双手真正实现自动化
******************** 修改文件说明 ********************
修改文件/e/public/ViewClick/index.php
//浏览数 if($down==0) { $r=$empire->fetch1("select onclick from {$dbtbpre}ecms_".$cr['tbname']." where id='$id' limit 1"); $shownum=$r['onclick']+1; if($_GET['addclick']==1) { $usql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set onclick=onclick+1 where id='$id' limit 1"); } }
替换成
//浏览数 if($down==0) { $r=$empire->fetch1("select onclick from {$dbtbpre}ecms_".$cr['tbname']." where id='$id' limit 1"); $wr=$empire->fetch1("select * from {$dbtbpre}timeclick "); $shownum=$r['onclick']+1; $daytime=hRepPostStr($wr['daytime']); $weektime=hRepPostStr($wr['weektime']); $monthtime=hRepPostStr($wr['monthtime']); $time = time(); $today = strtotime("today");//获取当天时间戳 $lastmonday = strtotime('last monday', $time);// 获取本 周一的时间戳 $dateTime = new DateTime(); $dateTime->setTimestamp($time); $dateTime->setDate($dateTime->format('Y'), $dateTime->format('m'), 1); $dateTime->setTime(0, 0, 0); $monthday = $dateTime->getTimestamp(); // 获取当前月份第一天的时间戳 if($daytime!=$today){ $daytimesql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set dayclick=0"); $todaysql=$empire->query("update {$dbtbpre}timeclick set daytime='".$today."'"); } if($weektime!=$lastmonday){ $weektimesql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set weekclick=0"); $lastmondaysql=$empire->query("update {$dbtbpre}timeclick set weektime='".$lastmonday."'"); } if($monthtime!=$monthday){ $monthtimesql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set monthclick=0"); $monthdaysql=$empire->query("update {$dbtbpre}timeclick set monthtime='".$monthday."'"); } if($_GET['addclick']==1) { $usql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set onclick=onclick+1,dayclick=dayclick+1,weekclick=weekclick+1,monthclick=monthclick+1 where id='$id' limit 1"); } }
上传附件内的所有文件到根目录
******************** 插件目录说明 ********************
/e/extend/timeclick/ 点击排行榜插件目录
├install/ 插件安装/卸载文件目录
│├index.php 安装/卸载主文件
│├install.php 安装插件文件
│└uninstall.php 卸载插件文件
******************** 插件调用说明 ********************
在需用调用排行榜的地方,排序使用 order by monthclick 或者 order by weekclick 、 order by dayclick即可。
dayclick--日点击
weekclick--周点击
monthclick--月点击
万能标签调用:
[ecmsinfo]0,10,32,0,3,1,0,'','dayclick DESC'[/ecmsinfo]
或
[ecmsinfo]"select * from [!db.pre!]ecms_news where checked=1 order by dayclick desc limit 10",10,32,0,24,1,0[/ecmsinfo]
灵动标签:
[e:loop={0,10,3,0,'','dayclick DESC'}] <a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br> [/e:loop]
或
[e:loop={select * from [!db.pre!]ecms_news where checked=1 order by dayclick desc limit 10',10,24,0,'','newstime DESC'}] <a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br> [/e:loop]
即为默认表/news表下的审核通过文章以每天点击量排行
在内容模版需要点击量的地方添加实时显示点击数(显示+统计)
调用动态<script src=[!--news.url--]e/public/ViewClick/?classid=[!--classid--]&id=[!--id--]&addclick=1></script>
本文章转自:https://www.yeskylog.com/cmsplugin/137.html 感谢作者分享
下面是附件: