【XiunoX插件】短视频 1.0.0
短视频插件(xnx_short_video)
抖音/快手风格的短视频系统:用户发布短视频、全屏沉浸式播放、点赞、收藏、评论回复、精准分享链接、视频内搜索、用户作品墙,并以系统通知的形式推送互动与审核结果。
- 插件目录:plugin/xnx_short_video/
- 作者:qintian
- 版本:1.0.0(适用于 XiunoNext 1.1.x,PHP 8.0+,仅支持 MySQL)
- 兼容性:Bootstrap 5 / Tabler 图标 / htmx / XN.* 前端 API,无 jQuery
## 功能
| 模块 | 说明 |
| — | — |
| 视频流 | 前台全屏沉浸式播放,滚轮/触摸/方向键翻页,静音自动播放、点击切换声音 |
| 发布 | 标题必填、描述选填;支持 MP4(校验文件头与时长);后台可限制最大时长与体积 |
| 互动 | 点赞、收藏、评论、回复评论、分享(复制链接 / QQ / 微博 / 系统分享) |
| 分享 | 分享的是视频精准链接(?xnv_sv-detail-{vid}.htm),打开即定位到该视频 |
| 通知 | 点赞/收藏/评论/回复、审核中/通过/驳回均以系统通知推送(如"xx 赞了你的短视频《…》“) |
| 搜索 | 视频页搜索框仅搜索视频(标题/描述),不影响帖子与用户搜索 |
| 用户主页 | 个人中心"短视频"入口;用户页展示其发布/收藏/评论的短视频(含他人可见) |
| 审核 | 可开关发布审核;审核中视频仅作者与管理员可见;审核结果系统通知作者 |
| 后台 | 基础设置、视频管理(查看/编辑/审核通过/驳回/删除)、评论管理(删除) |
## 安装
1. 将 xnx_short_video 目录放入 plugin/ 下(或后台打包上传 zip)。
2. 后台 → 插件管理 → 找到"短视频” → 安装 → 启用。
3. 安装自动创建 4 张表(xnv_short_video / _like / _fav / _comment)、上传目录 upload/xnx_short_video/(含防执行 .htaccess)并写入默认配置。
4. 若出现模板缓存问题:删除 tmp/*.htm 缓存文件后刷新页面。
## 使用
- 顶部导航"短视频"进入视频流;未登录可浏览,登录后可发布/点赞/收藏/评论。
- 发布:视频流右上角"发布"按钮,填写标题(必填)与描述(选填),选择 MP4 文件。
- 管理:后台 → 插件 → 短视频"设置"。
## 数据与删除语义
- 管理员/作者删除视频:删除该视频的点赞、收藏、评论、相关通知记录,并删除视频文件。
- 卸载插件:删除全部数据库记录(视频/点赞/收藏/评论)、短视频相关系统通知与插件配置;保留视频文件(如需清理请手动删除 upload/xnx_short_video/ 目录)。
- 禁用插件:不删除任何数据,仅前台隐藏入口与页面。
## 数据库表
- xnv_short_video:视频(标题、描述、文件路径、时长、状态、各计数)
- xnv_short_video_like / xnv_short_video_fav:点赞/收藏(vid+uid 唯一)
- xnv_short_video_comment:评论/回复(reply_to 指向父评论)
## 技术说明
- 路由:单一前缀 xnv_sv(xnv_sv 视频流 / xnv_sv-detail-{vid} 详情 / xnv_sv-user-{uid} 用户主页 / xnv_sv-api 接口)
- 通知:复用核心 notify 表,tid=0、pid=视频ID,类型 xnv_like / xnv_fav / xnv_comment / xnv_reply / xnv_review_pending / xnv_review_approve / xnv_review_reject(由 hook/notify_types_register.php 注册,统一归入"系统"标签)
- 文件:lib/Mp4Duration.php(MP4 时长解析)、lib/ShortVideoService.php(业务层)、route/sv.php + route/api.php(前台)、setting.php + view/htm/setting.htm(后台)
- 安全:所有输出 esc_*、POST 表单 CSRF、上传目录禁执行、播放计数等写操作走 POST 接口