AI摘要
VistorLoggerPro是一款为Typecho博客系统开发的访客统计插件,基于原版VistorLogger进行优化。该插件提供访问国家/地区统计、IP分布统计(匿名化处理)、省份访问统计图表、路由访问统计分析、访问时间统计等功能,并自动排除管理员访问。插件还具备数据筛选、展示、管理功能,支持适配器实现原版插件与当前插件的无缝衔接,自动数据迁移,兼容新版Typecho和不同主题。性能优化方面,采用异步API数据加载,解决大数据量加载问题,提高页面响应速度,使用CDN加载ECharts图表库,优化移动端显示。隐私保护方面,实现IP地址匿名化处理,明确隐私声明,符合法律法规要求。界面特性包括移动端自适应布局、美观图表展示等。插件安装简单,系统要求为PHP 7.4及以上,Typecho 1.2.1及以上,MySQL 5.5及以上数据库。
前言
第一次使用原版插件时统计图是没加载出来的,然后看着整体有些复古感觉是一个古老插件(后面找到了原插件仓库,作者还在更新,尴尬了)。于是就自己着手进行优化,后来突然想到如果做成一个模板页面放前台是怎样的,也就有了现在本站左侧访客那个页面,以及右侧博客信息中的浏览总数,数据也是出自这里,不过我还没来得及发教程。
新版插件除了保留了原插件的一些功能,还对外观,性能做了巨大优化。并且在插件中做了一个适配器adapter.php,它可以实现原版插件与当前插件的无缝衔接,这个是我开发时遇到bug弄得,后面感觉可以不用删。正如原作者所说:平时都是Vue+Spring,所以我借助了AI的力量。
介绍
这是一个为 Typecho 博客系统开发的访客统计插件,基于原版的VistorLogger修改版本。该插件提供了详细的访问统计功能,包括访问国家/地区统计、IP分布等信息,并进行了隐私保护处理。
功能特点
功能分类 | 功能描述 |
---|---|
数据统计功能 | • 访问国家/地区统计(Top 30) • IP分布统计(已匿名化处理) • 省份访问统计图表(TOP 30) • 路由访问统计分析(页面访问量统计) • 访问时间统计(按日期分布) • 管理员访问自动排除 |
数据筛选功能 | • 日期范围选择器 • 快捷时间选择(今天、最近7天、最近30天、全部) • 按钮选中状态高亮显示 • 默认只加载近7天数据,优化首次加载速度 |
数据展示功能 | • ECharts环形图表展示方式 • 列表视图支持(详细数据展示) • 图表悬停效果(显示详细信息) • 自适应图表区域 |
数据管理功能 | • 删除特定IP记录功能(支持模糊匹配) • 数据库自动优化 • 时区自动转换功能,确保访客时间记录准确 |
兼容性功能 | • 适配器支持(adapter.php),实现原版VisitorLogger插件与当前插件的无缝衔接 • 自动数据迁移,保留原有统计数据 • 兼容新版Typecho(带命名空间版本) • 兼容不同主题,特别优化handsome主题 |
性能优化 | • 异步API数据加载(getVisitStatistic.php) • 解决大数据量加载问题,提高页面响应速度(从10s优化到2s) • 使用CDN加载ECharts图表库,减少插件体积 • 优化移动端显示 |
隐私保护 | • IP地址匿名化处理(只显示前两段) • 明确的隐私声明 • 符合相关法律法规要求 • 数据安全存储 |
界面特性 | • 移动端自适应布局 • 美观的图表展示 • 增高环形图展示区域,改善视觉效果 • 列表/图表切换视图 • 优雅的加载动画 |
页面预览
Handsome前台效果可参考本站左侧访客导航页面
安装及更新方法
- 下载插件文件(文末)
- 在本地解压后把目录名改为VisitorLoggerPro
- 将改后的文件上传到/usr/plugins目录下
- 在 Typecho 后台启用插件
- 要把该文件
visitor-stats.php
移动到handsome主题根目录(handsome主题适用) - 直接用新版本覆盖掉旧版本即可完成更新
系统要求
项目 | 要求 |
---|---|
PHP版本 | 7.4及以上 |
Typecho版本 | 1.2.1及以上 |
数据库 | MySQL 5.5及以上或等效数据库 |
使用说明
基本使用(Handsome主题适用)
- 在 Typecho 后台创建新页面
- 在页面模板中选择"访客统计"
- 发布页面即可看到统计效果
- 创建新页面,选择"访客统计"模板
隐私保护
本插件已实现以下隐私保护措施:
- IP地址匿名化处理(只显示前两段)
- 明确的隐私声明
- 符合相关法律法规要求
技术实现
- 前端:ECharts 图表库
- 后端:PHP + MySQL
- 数据存储:Typecho 数据库
- 数据处理:通过API异步加载,提高性能
更新日志
版本 | 类型 | 更新内容 |
---|---|---|
v2.1.1 (2024-06-21) |
优化 | • 移除本地chart.js文件(约200KB),减少插件体积 • 全部使用CDN加载ECharts图表库 |
修复 | • 删除panel.php中对本地chart.js的引用 | |
v2.1.0 (2024-06-18) |
前台优化 | • 新增API端点(getVisitStatistic.php)处理数据聚合 • 解决前台大数据量加载问题,提高页面响应速度(10到2s) • 添加日期范围选择器和快捷按钮(今天、最近7天、最近30天、全部) • 实现按钮选中状态高亮显示 • 优化首次加载速度,默认只加载近7天数据 • 增高环形图展示区域,改善视觉效果 • 修复图表悬停效果 |
后台优化 | • 添加删除特定IP记录功能(支持模糊匹配) • 重构图表加载逻辑,使用异步API获取数据 • 添加省份访问统计图表 • 优化后台路由统计,解决X轴信息重叠问题 • 优化日期选择功能 |
|
修复 | • 修复内容解码错误(ERR_CONTENT_DECODING_FAILED) • 修复SQL错误(Unknown column 'province') |
|
v2.0.2 (2025-06-13) |
功能增强 | • 新增后台忽略IP名单功能,支持多种IP格式 • 前台删除管理员(自己)访问记录功能,保持统计数据纯净 • 优化CDN环境下IP识别机制,解决IP不准确问题 • 添加IP地址过滤器,支持自定义过滤规则 |
修复 | • 修复PHP 8.0环境下的弃用函数警告 • 修复在某些主题下的样式冲突问题 • 修复日期选择器在移动端的显示问题 • 优化数据库查询,减少资源占用 |
|
v2.0.1 (2025-05-15) |
功能改进 | • 修复时区问题:将数据库time字段从TIMESTAMP改为DATETIME类型 • 添加服务器时区自动转换功能,确保访客时间记录准确 • 优化数据迁移处理,自动转换已有记录的时区 • 添加适配器(adapter.php),实现原版插件与当前插件的无缝衔接 |
修复 | • 修复时区显示不正确的问题 • 修复数据库查询兼容性问题 |
|
v2.0.0 (2025-04-23) |
主要功能 | • 初始版本发布 • 实现基本访客统计功能 • 国家/地区访问统计 • IP分布统计(已匿名化处理) • ECharts环形图表展示方式 • 列表视图支持 • 移动端适配 |
隐私保护 | • IP地址匿名化处理(只显示前两段) • 明确的隐私声明 • 符合相关法律法规要求 |
|
其他 | • 优化移动端显示 • 管理员访问自动排除 |
最后
希望大家顺手点点star
如果有使用问题或者开发建议,可在评论区提出
Github地址:
此内容需要评论后才能查看哦 (*^▽^*)
https://github.com/BXCQ/Visit...
快速下载地址:
此内容需要评论后才能查看哦 (*^▽^*)
https://pan.xunlei.com/s/VOTJ...
31 条评论
图 好 涩 啊ヾ(≧∇≦*)ゝ
滴!学生卡!打卡时间:04:33:19,请上车的乘客系好安全带~
你的代码写的很好,不过很快就是我的了(滑稽)
哎我去,你的typecho和mysql都是哪个版本
不是 哥们,你要干神魔(/ω\)
实在不好意思,你刚才说“xuan”我实在没想到,不好意思给你删了
太酷啦bro
哈哈,可以帮忙点点star,后续还会优化
请问下不迁移visitor-stats.php会损失哪些功能呢,我目前在使用Single主题没法使用 handsome 的优化部分,试了下访客统计的功能是能正常使用的
可能没办法删除自己的浏览记录,因为 删除自己的记录 我在前台页面设置的。
但你可以在设置里的 忽略IP 中添加自己的访问ip,这样也不会统计自己的浏览记录。
后台有统计就行,visitor-stats.php这个是handsome主题的前台模板,不要也可以
明白了,感谢
看看
我这个访客数据量挺大的,需要加载挺长时间,后续还要优化
滴!学生卡!打卡时间:00:29:28,请上车的乘客系好安全带~
滴!学生卡!打卡时间:09:34:08,请上车的乘客系好安全带~
不错不错
666
有你在的日子才是我的日常。
牛皮轰轰
嘿嘿|´・ω・)ノ
滴!学生卡!打卡时间:00:01:39,请上车的乘客系好安全带~
滴!学生卡!打卡时间:21:25:32,请上车的乘客系好安全带~
滴!学生卡!打卡时间:21:40:46,请上车的乘客系好安全带~
可以的👍🏻
滴!学生卡!打卡时间:15:01:03,请上车的乘客系好安全带~
想请教下VisitorLoggerPro这个插件一直无法启动,又什么办法么
我更新了代码,你试试现在的版本
visitor-stats.php移动到handsome主题根目录了吗