织梦CMS点击率统计实现方法

织梦CMS点击率统计实现方法

数据库字段添加

在对应内容模型的数据表中添加点击数字段(如click),确保字段类型为整型(INT)。

模板文件修改

在内容页模板(article_article.htm)中添加点击统计代码:

php 复制代码
{dede:field name='id' runphp='yes'}  
global $dsql;  
$dsql->ExecuteNoneQuery("UPDATE `dede_archives` SET `click` = `click` + 1 WHERE id = @me");  
@me = $dsql->GetOne("SELECT `click` FROM `dede_archives` WHERE id = @me")['click'];  
{/dede:field}  

AJAX异步统计(可选)

通过jQuery实现无刷新点击统计:

javascript 复制代码
$.post("/plus/count.php", {aid: {dede:field.id/}}, function(data) {  
    $("#click-count").html(data);  
});  

需在/plus/count.php中编写PHP处理逻辑更新数据库。


时间显示与格式化操作

模板时间调用

直接调用系统默认时间标签:

html 复制代码
发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}  

自定义时间格式

修改/include/helpers/extend.helper.php,添加自定义时间函数:

php 复制代码
function custom_date($timestamp, $format = 'm/d/Y') {  
    return date($format, $timestamp);  
}  

模板调用方式:

html 复制代码
{dede:field.pubdate function="custom_date(@me, 'Y年m月d日')"/}  

时间差计算

显示"X分钟前"等相对时间:

php 复制代码
function time_ago($time) {  
    $diff = time() - $time;  
    if ($diff < 60) return $diff . "秒前";  
    elseif ($diff < 3600) return floor($diff/60) . "分钟前";  
    elseif ($diff < 86400) return floor($diff/3600) . "小时前";  
    else return floor($diff/86400) . "天前";  
}  

模板调用示例:

html 复制代码
{dede:field.pubdate function="time_ago(@me)"/}  

注意事项

  • 数据库操作需确保表前缀与系统一致(默认为dede_)。
  • AJAX WWW.Sf123.Sh.CN统计需检查服务器是否允许POST请求。
  • 时间函数修改后需清理模板缓存生效。
相关推荐
帅次1 天前
链路到端上:HTTPS 之后安全题还在考什么
android·okhttp·glide·zygote·retrofit
djk88882 天前
layui zTree 控件 AJAX绑定 点击tree事件 获取tree值
ajax·okhttp·layui
明天就是Friday4 天前
Android实战项目④ OkHttp WebSocket开发即时通讯App 完整源码详解
android·websocket·okhttp
xiangxiongfly9154 天前
Android 使用WebSocket通信
android·websocket·网络协议·okhttp
研☆香5 天前
聊聊什么是AJAX
前端·ajax·okhttp
sunwenjian8867 天前
跨域问题解释及前后端解决方案(SpringBoot)
spring boot·后端·okhttp
XiaoLeisj9 天前
Android 短视频播放详情页实战:从播放器模块拆分、Media3 与 FlowHelper 接入,到 ViewPager 高度适配和详情数据联动
android·okhttp·音视频·架构设计·flowhelper
阿正的梦工坊10 天前
拦截网络请求:一种更优雅的数据获取方式
网络·okhttp
鬼蛟15 天前
ICAN_PARENT
okhttp