织梦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 天前
深入理解 JavaScript 事件体系:Window、鼠标与键盘事件详解
开发语言·javascript·okhttp
牢七4 天前
wordpress
okhttp
脉动数据行情7 天前
Java OkHttp 完整封装 GC COMEX 美黄金实时盘口定时拉取工具类
java·okhttp·comex 黄金·外盘贵金属
帅次8 天前
Android 高级工程师面试:网络与数据层 近1年高频追问 18 题
android·网络·okhttp·面试·retrofit·gilde
Java面试题总结9 天前
fastadmin 新手部分功能点
okhttp
殳翰13 天前
向客户端提供JSON数据的方式
okhttp·json
CYY9519 天前
OkHttp 和 Retrofit 封装使用
okhttp·retrofit
CYY9520 天前
OkHttp 的使用
okhttp
朝星1 个月前
Android开发[14]:网络优化之OkHttp
android·okhttp·kotlin
之歆1 个月前
Promise 基础技术深度解析:从回调地狱到链式调用
前端·okhttp·promise