帝国cms日点击,周点击,月点击排行榜现实插件每天,每周,每月自动清零无需手动和挂计划

分类栏目:帝国学院

发布于

附件内有修改好的文件和插件安装/卸载工具,真正实现傻瓜式操作,对于我们这种新手和小白非常友好
下载地址在文章最后
本章来讲一讲 官方默认只有总点击  无法现实帝国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 感谢作者分享

下面是附件:

查看原内容