织梦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请求。
- 时间函数修改后需清理模板缓存生效。