织梦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请求。
  • 时间函数修改后需清理模板缓存生效。
相关推荐
YF02111 天前
深度解构Android OkDownload断点续传
android·数据库·okhttp
右耳朵猫AI4 天前
Python技术周刊 2026年第14周
开发语言·python·okhttp
牢七4 天前
cve研究
okhttp
yqcoder5 天前
原生 AJAX 揭秘:如何使用 XHR 发起请求
前端·ajax·okhttp
身如柳絮随风扬8 天前
你知道什么是 Ajax 吗?—— 从入门到原理,一篇彻底搞懂
前端·ajax·okhttp
小白学大数据13 天前
Python 自动化爬取网易云音乐歌手歌词实战教程
爬虫·python·okhttp·自动化
前端百草阁15 天前
【吃透 Promise】从基础到面试高频(手写 + 输出题 + 原理)
okhttp·面试·职场和发展
ppandss116 天前
JavaWeb从0到1-DAY4-AJAX
前端·ajax·okhttp
帅次21 天前
链路到端上:HTTPS 之后安全题还在考什么
android·okhttp·glide·zygote·retrofit