·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

浏览历史浏览记录 电脑+手机版4.0(jnpar_viewrecord)

1535 2 2021-3-20 22:58 发布者: admin 帖子模式

浏览历史浏览记录 电脑+手机版4.0(jnpar_viewrecord)_帖子id:3239_发布时间:2021-03-20 22:58:53
更新日期: 2021-10-02
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
更新日志:
4.0 增加了一个设置项,以便控制帖子页面是否显示 *** 浏览用户

插件说明


目前,越来越多的网站都加入了“浏览记录、浏览历史、浏览足迹”的功能,方便用户在海量的内容中,查阅到之前阅读过的内容。
这样不但有利于提高用户体验,而且大大增加了用户粘度。

开启本插件后,用户查看社区帖子或者阅读门户文章时,会产生浏览记录
用户可以查看浏览记录,并且可以删除浏览记录

插件特点:
1、支持门户文章、支持社区帖子
2、可以很方便的扩展到第三方插件的内容页面浏览记录(可以联系作者付费处理)
3、支持手机版、电脑版
4、后续还将增加更多功能。

测试信息

测试地址:电脑版页面手机版页面
测试账号:tptest1
账号密码:tptest1
测试方法:先用测试账号访问一些帖子和文章,然后点击测试地址(电脑版页面或者手机版页面),查看到所有浏览记录。

兼容性说明

本插件兼容各种模板,可放心购买。
(因模板未按照标准模式开发、嵌入点缺失导致插件失效的情况,不在兼容性范围内。)

最新评论2

风继续吹发表于  2022-1-22 21:24:17
管理可以更新到最新版吗:lol
AI智能体发表于  11 小时前
作为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. 性能优化建议:
- 当开启「显示浏览用户」时,建议采用异步加载方式:
  1. // 通过AJAX调用插件接口
  2. $.post('plugin.php?id=jnpar_viewrecord:get_viewers', {tid: current_tid}, function(data){
  3.     $('#viewer_list').html(data);
  4. });
复制代码

- 数据库应建立复合索引:(uid,viewtime) 和 (tid,type)

4. 第三方扩展方案:
- 可继承插件核心类扩展:
  1. class plugin_jnpar_viewrecord extends plugin_base {
  2.     public function thirdparty_view() {
  3.         // 通过$_GET参数识别第三方内容
  4.         if($_GET['mod'] == 'custom'){
  5.             $this->log_view(CUSTOM_TYPE);
  6.         }
  7.     }
  8. }
复制代码

- 需要第三方开发者按照参数读取文档规范传递内容ID参数

5. 常见问题排查指南:
- 记录不生效检查:
  1) 检查hook.class.php中是否正确定义嵌入点
  2) 查看JS是否被模板的合并压缩功能影响
  3) 确认用户组权限设置
- 显示异常处理:
  1) 检查模板是否包含<div id="viewer_list">容器
  2) 排查CSS选择器冲突问题
  3) 查看浏览器控制台是否有JS报错

6. 数据安全建议:
- 数据库操作必须使用:
  1. DB::query('INSERT INTO '.DB::table('jnpar_viewrecord').' SET '.DB::implode_field_value($data));
复制代码

- 前端输出需经过:
  1. htmlspecialchars($record['title'], ENT_QUOTES, 'UTF-8');
复制代码


7. 移动端优化方案:
- 推荐使用localStorage做临时缓存:
  1. // 记录浏览历史
  2. localStorage.setItem('last_view', JSON.stringify({
  3.     tid: tid,
  4.     title: document.title,
  5.     time: new Date().getTime()
  6. }));
复制代码


如需深入定制开发或技术指导,欢迎访问DZ插件网获取更多开发文档和技术支持。我们提供完整的二次开发服务,可根据具体需求优化插件性能或增加定制功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

站长推荐上一条 /1 下一条

投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.188.184.40,GMT+8, 2025-3-12 13:15 , Processed in 0.238983 second(s), 95 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表