# NetDisk 网盘分享(emlog 插件) 为你的 emlog 博客文章添加网盘资源分享模块。粘贴任意网盘分享链接,自动识别网盘类型并展示对应品牌图标,前台一键跳转下载,内置下载统计与 IP 去重防刷。 支持 **夸克 / 百度 / 阿里云盘 / 蓝奏云 / 天翼云盘 / 迅雷云盘 / UC 网盘 / 光鸭云盘 / 123 网盘 / 其他网盘** 共 10 类链接,未匹配到已知域名时自动归类为「其他网盘」。 - 插件名:NetDisk网盘分享 - 当前版本:v1.3 - 适用平台:emlog Pro(需 PHP 7.0+) - 作者:LAO.CHEN --- ## 特性 ### 编辑文章时的增强体验 - **编辑器内置「网盘分享」面板**:写文章页工具栏点击「网盘分享」即可展开配置面板,无需记忆任何标签或短代码。 - **网盘自动识别**:粘贴分享链接后,根据域名自动匹配网盘类型并选中;也可手动从下拉框指定。 - **图标与品牌色实时预览**:选择网盘后即时显示对应的彩色图标预览,所见即所得。 - **链接实时校验**:输入框即时校验链接是否为合法的 `http://` / `https://` 地址,格式非法时给出错误提示,避免发布失效链接。 - **已知域名智能提示**:当粘贴的链接不属于已支持的网盘域名时给出友好警告(仅提示,不阻止发布)。 - **每篇文章独立控制**:可为单篇文章选择是否「显示下载模块」,发布、编辑、删除文章时数据自动同步增删。 ### 丰富的前台展示 - **品牌化下载卡片**:以各网盘官方品牌色 + SVG 矢量图标渲染下载卡片,观感统一且不需要外部图标库。 - **自定义资源名称**:每条资源可单独填写标题;留空时自动使用后台设置的「默认资源标题」。 - **提取密码一键复制**:分享链接带提取密码时,前台展示密码并提供「复制」按钮(剪贴板 API,自动降级兼容旧浏览器),复制成功有气泡提示。 - **下载跳转安全**:链接以 `target="_blank"` 新窗口打开,并带 `rel="noopener noreferrer"`,保证安全。 - **响应式卡片布局**:完整适配移动端与桌面端。 ### 下载统计与防刷 - **IP 去重防刷**:同一 IP 在配置的时间窗口内多次点击只计一次,统计真实不掺水。 - **可配置去重窗口**:支持 1 小时 / 6 小时 / 12 小时 / 24 小时 / 48 小时 / 7 天,默认 24 小时。 - **多维统计口径**:前台展示「今日 X 次 · 总计 X 次 · X 人下载」,全部基于去重后的数据。 - **异步统计不阻塞**:点击下载通过 `navigator.sendBeacon` 异步上报,即使用户立刻关闭页面也不丢数据。 - **后台数据看板**:插件设置页汇总「总下载次数 / 独立 IP 数」,并按下载量展示 Top 20 资源排行榜(资源、网盘、下载次数、独立 IP)。 ### 数据与安全设计 - **独立数据表**:安装自动创建 `lcbk_netdisk`(分享配置)与 `lcbk_netdisk_stats`(下载记录)两张表,与 emlog 业务数据隔离。 - **安全防护**:所有 SQL 使用参数化取值前的 `intval` / `addslashes` 处理;前台输出经 `htmlspecialchars` 转义,防注入与 XSS。 - **统计开关**:可在后台一键关闭下载统计,关闭后前台不展示任何统计数字。 --- ## 环境要求 | 项目 | 要求 | | --- | --- | | 博客程序 | emlog Pro | | PHP 版本 | 7.0 及以上(使用短数组与空合并运算符) | | 数据库 | MySQL(InnoDB,自动建表) | > 兼容性说明:插件通过 emlog 的 `addAction` 挂载点(`adm_writelog_bar`、`log_related`、`save_log`、`del_log` 等)与 `Storage`、`Database` API 集成,仅适用于 emlog 6 及以上版本。 --- ## 安装方法 将本插件(`lcbk_netdisk` 整个目录)安装到 emlog 中,二选一: ### 方式一:emlog 后台在线安装 1. 进入 emlog 后台「插件」页面。 2. 点击「上传插件」,选择本插件的 zip 压缩包并上传。 3. 安装成功后点击「启用」。 ### 方式二:手动上传 1. 将 `lcbk_netdisk` 目录整体上传至服务器的 `content/plugins/` 目录下。 2. 进入 emlog 后台「插件」页面。 3. 找到 **NetDisk网盘分享**,点击「启用」。 > 启用插件时会自动创建数据表,无需手动执行 SQL。卸载插件时将同时删除相关数据表与统计数据,请谨慎操作。 **目录结构** ``` content/plugins/lcbk_netdisk/ ├── lcbk_netdisk.php # 插件主文件(挂载点、网盘类型、前台展示逻辑) ├── lcbk_netdisk_setting.php # 后台设置页(基础设置 + 下载统计看板) ├── lcbk_netdisk_admin.js # 后台写文章面板交互(自动识别/校验/预览) ├── lcbk_netdisk_front.js # 前台交互(异步统计、复制密码、气泡提示) ├── lcbk_netdisk_callback.php # 安装/升级/卸载钩子(自动建表、删表) ├── lcbk_netdisk_show.php # 前台统计接口 action=track ├── lcbk_netdisk.css # 前后台样式 └── preview.jpg # 效果预览图 ``` --- ## 使用教程 ### 第一步:插件设置 进入 emlog 后台「插件 → NetDisk网盘分享 → 设置」。 1. **默认资源标题**:写文章时未单独填写资源名称时使用,例如「网盘资源下载」。建议设置为通用标题。 2. **启用下载统计**:开关打开后,每次点击下载卡片都会计入统计;关闭后前台不显示统计数字。 3. **启用 IP 去重防刷**:同一 IP 在指定时间窗口内重复点击只计一次,防止刷量。建议保持开启。 4. **去重时间窗口**:可选 1 小时 / 6 小时 / 12 小时 / 24 小时 / 48 小时 / 7 天,默认 24 小时。 设置完成后点击「保存设置」。右侧「下载统计」卡片会实时汇总所有资源的下载数据。 ### 第二步:在文章中插入网盘资源 1. 进入 emlog 后台,新建或编辑一篇文章。 2. 在编辑器工具栏点击 **「网盘分享」**,展开配置面板。 3. 填写以下内容: | 字段 | 是否必填 | 说明 | | --- | --- | --- | | 网盘类型 | 选填 | 支持手动选择;也可留空,粘贴链接后自动识别 | | 分享链接 | 必填 | 粘贴完整的 `http://` 或 `https://` 网盘分享链接 | | 提取密码 | 选填 | 网盘分享有提取码时填写,前台提供一键复制 | | 资源名称 | 选填 | 自定义标题,留空则使用后台「默认资源标题」 | | 显示下载模块 | 选填 | 默认勾选;取消勾选则文章不展示下载卡片 | 4. 粘贴链接后观察面板反馈: - 输入框根据域名自动选中对应网盘类型,图标预览同步切换; - 若链接格式非法,面板会显示错误提示,保存时该模块会被自动停用; - 若链接不属于已支持的网盘,会显示「未知域名」类提示,可手动指定「其他网盘」。 5. 正常保存文章。 ### 第三步:前台效果 发布后,在文章内容末尾会自动渲染下载卡片,包含: - 左侧:网盘品牌色圆角图标; - 中部:资源名称(标题)、网盘名称与下载统计(如「今日 12 次 · 总计 340 次 · 156 人下载」); - 提取密码行:「提取密码」标签 + 密码文本 + 「复制」按钮(点击后气泡提示已复制); - 右侧:品牌色下载按钮。 访客点击整张卡片即可在新窗口跳转到对应网盘页面;同时插件会在后台异步记录一次点击(自动按 IP 去重)。 ### 第四步:查看统计数据 进入「插件 → NetDisk网盘分享 → 设置」页面右侧: - **总下载次数 / 独立 IP 数**:顶部两块汇总数字; - **资源下载排行**:按下载次数倒序展示 Top 20 资源,包含所属网盘与独立 IP 数,便于了解哪些资源受欢迎。 > 提示:下载计数基于访客 IP,若网站启用了 CDN 且未传递真实 IP(`REMOTE_ADDR` 为 CDN 节点),统计会偏向 CDN 出口 IP。本地部署 / 直连服务器时不受影响。 --- ## 常见问题(FAQ) **Q1:为什么前台没有显示下载卡片?** 依次检查:① 插件已在后台启用;② 该文章的「显示下载模块」已勾选;③ 分享链接已正确填写(链接为空时不展示);④ 当前前台模板正确触发了 emlog 的 `log_related` 挂载点(默认文章模板均触发,若使用极简自定义模板可能需要确认)。 **Q2:下载数字一直没有变化?** 可能原因:统计被后台关闭;或同一 IP 在去重窗口内已计过一次。可临时关闭「IP 去重防刷」验证。 **Q3:链接填进去提示格式错误?** 仅接受 `http://` 与 `https://` 开头的完整网址。请检查是否缺少协议前缀(例如漏掉 `https://`)或含多余空格。 **Q4:复制密码按钮没反应?** 「复制」依赖浏览器剪贴板能力。不支持剪贴板 API 的浏览器会走 `execCommand` 降级方案;若仍失败,请手动选中密码复制。 **Q5:卸载插件会怎样?** 会删除 `lcbk_netdisk`(分享配置)与 `lcbk_netdisk_stats`(下载统计)两张表。如有历史统计数据,卸载前请先备份数据库。 --- ## 支持与许可 - 插件地址:[emlog 插件中心](https://www.emlog.net/plugin/detail/1212) - 作者主页:[LAO.CHEN](https://www.emlog.net/profiles/f065546a)