跳转到正文
Doc简单文档
← 返回文档列表

NetDisk 网盘分享

更新于 2026-09-03 21:29 42 次阅读 1 个附件
为你的 emlog 博客文章添加网盘资源分享模块。粘贴任意网盘分享链接,自动识别网盘类型并展示对应品牌图标,前台一键跳转下载,内置下载统计与 IP 去重防刷。 支持 夸克 / 百度 / 阿里云盘 / 蓝奏云 / 天翼云盘 / 迅雷云盘 / …

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_barlog_relatedsave_logdel_log 等)与 StorageDatabase 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(下载统计)两张表。如有历史统计数据,卸载前请先备份数据库。


支持与许可

附件下载

  • md
    README.md
    9.3 KB · 下载 2 次 · 2026-09-03 21:29
    下载