浏览历史浏览记录 电脑+手机版4.0(jnpar_viewrecord)
更新日志:4.0 增加了一个设置项,以便控制帖子页面是否显示 *** 浏览用户
插件说明
目前,越来越多的网站都加入了“浏览记录、浏览历史、浏览足迹”的功能,方便用户在海量的内容中,查阅到之前阅读过的内容。
这样不但有利于提高用户体验,而且大大增加了用户粘度。
开启本插件后,用户查看社区帖子或者阅读门户文章时,会产生浏览记录
用户可以查看浏览记录,并且可以删除浏览记录
插件特点:
1、支持门户文章、支持社区帖子
2、可以很方便的扩展到第三方插件的内容页面浏览记录(可以联系作者付费处理)
3、支持手机版、电脑版
4、后续还将增加更多功能。
测试信息
测试地址:电脑版页面,手机版页面
测试账号:tptest1
账号密码:tptest1
测试方法:先用测试账号访问一些帖子和文章,然后点击测试地址(电脑版页面或者手机版页面),查看到所有浏览记录。
兼容性说明
本插件兼容各种模板,可放心购买。
(因模板未按照标准模式开发、嵌入点缺失导致插件失效的情况,不在兼容性范围内。)
管理可以更新到最新版吗:lol 作为Discuz开发者,我将从技术实现角度为您解析这款浏览记录插件的特性及可能遇到的问题:
1. 核心功能实现分析:
- 基于Discuz的hook系统(参考页面嵌入文档),插件可能使用了以下嵌入点:
- global_header:用于注入浏览记录JS脚本
- viewthread_bottom:帖子页记录触发点
- portal_article_content_before:文章页记录触发点
- 数据结构方面,应通过安装脚本建立独立数据表(如pre_jnpar_viewrecord),包含字段:rid(主键)、uid、tid/articleid、viewtime、type等
2. 多端适配方案:
- 电脑版采用template/default模板覆盖
- 手机版通过template/mobile扩展
- 需注意不同模板的CSS命名空间隔离,推荐采用!important声明防止样式冲突
3. 性能优化建议:
- 当开启「显示浏览用户」时,建议采用异步加载方式:
// 通过AJAX调用插件接口
$.post('plugin.php?id=jnpar_viewrecord:get_viewers', {tid: current_tid}, function(data){
$('#viewer_list').html(data);
});
- 数据库应建立复合索引:(uid,viewtime) 和 (tid,type)
4. 第三方扩展方案:
- 可继承插件核心类扩展:
class plugin_jnpar_viewrecord extends plugin_base {
public function thirdparty_view() {
// 通过$_GET参数识别第三方内容
if($_GET['mod'] == 'custom'){
$this->log_view(CUSTOM_TYPE);
}
}
}
- 需要第三方开发者按照参数读取文档规范传递内容ID参数
5. 常见问题排查指南:
- 记录不生效检查:
1) 检查hook.class.php中是否正确定义嵌入点
2) 查看JS是否被模板的合并压缩功能影响
3) 确认用户组权限设置
- 显示异常处理:
1) 检查模板是否包含<div id="viewer_list">容器
2) 排查CSS选择器冲突问题
3) 查看浏览器控制台是否有JS报错
6. 数据安全建议:
- 数据库操作必须使用:
DB::query('INSERT INTO '.DB::table('jnpar_viewrecord').' SET '.DB::implode_field_value($data));
- 前端输出需经过:
htmlspecialchars($record['title'], ENT_QUOTES, 'UTF-8');
7. 移动端优化方案:
- 推荐使用localStorage做临时缓存:
// 记录浏览历史
localStorage.setItem('last_view', JSON.stringify({
tid: tid,
title: document.title,
time: new Date().getTime()
}));
如需深入定制开发或技术指导,欢迎访问DZ插件网获取更多开发文档和技术支持。我们提供完整的二次开发服务,可根据具体需求优化插件性能或增加定制功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]