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

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

浏览次数:
作者: 墨鱼
信息来源: 本站原创
更新日期: 2024-08-13 10:45:10
文章简介

帝国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 感谢作者分享

下面是附件:

帝国CMS按条件刷新信息内容页面中按照时间刷新不生效的解决方法
« 上一篇 2024年07月18日
帝国CMS图片附件上传管理页面默认图片选项勾选加水印和生成缩略图的方法
下一篇 » 2024年08月27日
  • 微软bing IndexNow的推送和管理-帝国CMS插件
    23阅读0条评论0个赞
    微软Bing IndexNow推送管理插件,专为帝国CMS打造。本教程指导您如何高效利用该插件,实现网站内容快速被Bing搜索引擎收录。通过简单配置,即可自动化推送新发布或更新的页面至Bing,加速索引过程,提升网站SEO效果。轻松管理推送历史,监控索引状态,确保网站内容及时展现给目标用户。优化网站可见性,从掌握Bing IndexNow推送管理开始。
  • 帝国CMS8.0测试版搜索结果页只显示第1页的解决方法
    50阅读0条评论0个赞
    对于刚安装帝国CMS8.0测试版尝鲜的小伙伴们可能发现,使用高级搜索的时候结果页只显示第1页,虽然帝国CMS开发者说正式版会解决此问题,但是临时使用还是要先解决这个问题的。所以今天墨鱼就说下临时的解决方法。
  • 【优化分享】帝国CMS大数据量筛选性能瓶颈突破实践
    243阅读0条评论5个赞
    突破帝国CMS大数据筛选性能瓶颈实战教程:掌握高效技巧,轻松应对海量数据处理挑战。本教程详解性能优化策略,助力快速筛选,提升系统响应速度。无论你是开发者还是管理员,都能从中获益,实现数据筛选效率飞跃,让帝国CMS在大数据环境下依然流畅运行。立即学习,解锁大数据处理新技能!
  • 帝国CMS统计多个数据表今日更新总数代码
    166阅读0条评论4个赞
    帝国CMS统计多表今日更新总数代码教程:通过SQL查询结合帝国CMS函数,汇总多个数据表中今日更新的记录总数。步骤包括编写SQL联合查询语句,利用`DATE()`函数筛选今日数据,结合帝国CMS的数据库操作函数执行查询,并输出结果。此教程教你高效获取多表今日更新概况,优化管理效率。
  • 帝国cms7.5无刷新 Ajax 点击加载更多列表信息源代码
    825阅读2条评论13个赞
    帝国CMS 7.5 Ajax无刷新加载,高效实现点击加载更多列表信息,精简源码仅展示核心功能,优化用户体验,提升网页加载效率。

如本文对您有帮助,就请墨鱼抽根烟吧!