夸克短剧主题

夸克短剧主题模板主题

版本 v1.2.28· 胡思乱想 · 15 次获取 · 模板主题
纯黑风格短剧聚合主题,前端视觉参考主流短剧站点(纯黑背景、红色强调色、海报网格、详情页双栏布局),后端结构对齐夸克影视主题(kuakeba-cn),完整适配 Zsens Admin 社区插件。
199.00原价
一次购买,永久使用
演示地址

详情介绍

夸克短剧主题(duanju)使用文档

纯黑风格短剧聚合主题,前端视觉参考主流短剧站点(纯黑背景、红色强调色、海报网格、详情页双栏布局),后端结构对齐夸克影视主题(kuakeba-cn),完整适配 Zsens Admin 社区插件。

  • 插件标识:duanju
  • 类型:主题(theme),宿主:community
  • 当前版本:1.2.02
  • 作者:kuakeba.cn


目录

  1. [功能特性](#1-功能特性)
  2. [环境要求](#2-环境要求)
  3. [安装与启用](#3-安装与启用)
  4. [首次启用数据清空说明](#4-首次启用数据清空说明)
  5. [配置说明](#5-配置说明)
  6. [短剧一键同步](#6-短剧一键同步)
  7. [宝塔定时同步](#7-宝塔定时同步)
  8. [页面与功能详解](#8-页面与功能详解)
  9. [内容发布规范](#9-内容发布规范)
  10. [下载资源解析规则](#10-下载资源解析规则)
  11. [资源可见权限机制](#11-资源可见权限机制)
  12. [SEO 与结构化数据](#12-seo-与结构化数据)
  13. [升级与缓存](#13-升级与缓存)
  14. [常见问题排查](#14-常见问题排查)
  15. [卸载与回退](#15-卸载与回退)
  16. [目录结构](#16-目录结构)
  17. [更新日志](#17-更新日志)


1. 功能特性

  • 纯黑视觉:全站纯黑背景 + 红色强调色(#dc2626),禁用系统配色选择器,风格统一不可被前台配色干扰。
  • 响应式海报网格:手机 3 列 / 平板 4 列 / 桌面 6–8 列自适应,卡片 2:3 海报比例,hover 缩放 + 渐变遮罩 + 集数角标。
  • 详情页双栏布局:左侧 2:3 大海报,右侧大标题、集数徽章、日期、分类、浏览量、导演/主演、简介;下方为毛玻璃质感网盘资源区。
  • 网盘资源卡片:自动识别夸克 / 百度 / 阿里 / 迅雷网盘链接并显示对应名称与品牌色图标,支持提取码展示。
  • 资源回复可见:下载链接默认对普通用户隐藏,回帖后解锁;管理员、作者、VIP 用户直接可见。
  • 自建导航体系:固定顶栏 + 分类下拉面板(彩色圆点标识)、移动端抽屉菜单、搜索弹窗(/ 快捷键)、回到顶部。
  • 社区功能完整兼容:点赞、收藏、评论(含表情、验证码)、举报、登录/注册/找回密码弹窗、PJAX 无刷新跳转全部保留。
  • SEO 友好:列表页 ItemList、详情页 BreadcrumbList + WebPage 结构化数据,Open Graph / Twitter Card 分享 meta,六大搜索引擎站长验证码。

2. 环境要求

项目要求
Zsens Admin>= 3.0
社区插件(community)>= 1.0.0
PHP8.2+(Zsens Admin 宿主要求)
可选:VIP 会员插件(vip)启用后 VIP 用户可按网盘权益配置免回帖直看下载链接(真实命名空间 plugins\vip,非 vipp)
可选:超级验证码插件启用后登录/注册/评论验证码自动切换为超级验证码

3. 安装与启用

  1. 将 duanju 文件夹上传/放置到站点 themes/duanju/ 目录。
  2. 进入后台「应用中心 → 主题管理」,找到「夸克短剧主题」。
  3. 点击「启用」。系统会弹出确认提示:本主题启用后会清空已有分类和文章,请悉知!
  4. 确认后主题生效:

  - static/ 静态资源自动复制到 public/static/duanju/;

  - 后台「插件列表」下自动注册「短剧采集」菜单入口(宿主通用配置页);

  - 前台模板合并缓存自动重建(宿主模板 + 本主题覆盖)。

  1. 采集参数在后台「插件列表 → 短剧采集」维护(见第 5 节);站点名称、SEO、单页文案等直接使用社区插件的全局配置。
建议在启用主题前先在后台「社区设置」中规划好分类结构(如:女频、男频、题材、爽点等一级分类及子分类),导航栏会自动读取前 4 个一级分类。

4. 首次启用数据清空说明

本主题专为短剧站设计,首次启用时会执行一次性的数据重置,以便按短剧站结构重新建库:

  • 触发条件:plugin 表中不存在 duanju 记录(即首次安装/启用)。宿主执行升级流程时因插件表已有记录,会保留现有数据。
  • 清空方式:TRUNCATE TABLE(同时将自增 ID 重置为 1),涉及以下 10 张表:
表名说明
community_topic文章/话题
community_category分类
communitytopictag话题-标签关联
community_reply回复/评论
community_like点赞
community_favorite收藏
communitytopicpay话题付费记录
community_report举报
communitycategorymod分类版主
communitycategoryfollow分类关注
  • 派生数据(回复、点赞等)必须一并清空:否则自增 ID 重置后,旧回复/点赞会错挂到新文章上。
  • 单表清空失败时仅记录日志([duanju] 启用主题清空数据表失败:表名),不中断启用流程。
注意:「停用 → 再启用」会再次触发清空(停用时插件记录被移除,再启用视为首次安装)。如需保留数据,请勿反复切换启用状态。

5. 配置说明

主题配置分两部分:采集参数在后台「插件列表 → 短剧采集」(主题自建配置页 /admin/community_duanju/config,保存后 CLI 同步按最新配置执行);站点信息、SEO、页面文案直接使用社区插件的全局配置(后台「社区设置」),无需重复维护。

5.1 采集参数(后台「短剧采集」)

配置项默认值说明
同步源站 sync_sourcehttps://duanju.aipan.me需带 http(s)://,结尾不要带斜杠。
同步代理 sync_proxy留空(直连 + 自动探测常见代理端口)服务器无法直连源站时填写 HTTP 代理,如 http://127.0.0.1:7890。
目标分类 ID synccategoryid0(自动创建并复用「短剧」分类)同步内容写入的分类 ID。
单页抓取数量 sync_limit24每次请求源站返回的条数,范围 1–50。
更新已有短剧 syncupdateexisting1(覆盖更新)0:仅新增,已存在则跳过。
CLI 命令行参数(--source/--proxy/--category/--limit/--update)优先级高于此处配置,未传参时按上表配置执行 — 修改配置后无需改动宝塔计划任务命令。

6. 短剧一键同步

将源站短剧批量抓取并写入社区分类与话题,支持重复执行(自动去重)。同步统一通过 CLI 脚本执行(宝塔计划任务或服务器命令行),不依赖任何 Web 路由(零路由方案,彻底规避各类环境下的后台 404 问题)。

6.1 入口

  • 宝塔「计划任务 → Shell 脚本」:php themes/duanju/bin/sync.php(见第 7 节);
  • 服务器命令行手动执行:php themes/duanju/bin/sync.php --limit=24 --pages=1。

6.2 执行行为

  • 增量同步:抓取 1 页(数量由 sync_limit 决定),适合日常定时增量。
  • 全量同步:--all 以 nextcursor 逐页循环抓取,最多 maxpages 页(默认 200)。
  • 更新策略:syncupdateexisting=1 时覆盖更新标题/简介/封面,0 时仅新增。
  • 日志与状态:步骤、新增/更新条数、错误原因逐行输出,最近 100 条持久化到 runtime/duanjusyncstate.json;命令行清空数据可用 sync.php --clear(二次输入 y 确认)。

6.3 入库规则

源站字段入库字段说明
titlecommunity_topic.title标题不含集数时自动追加「(全N集)」,最长 200 字
cover_urlcommunitytopic.videocover + 正文首个 <img>详情页大图与列表海报
intro正文简介段纯文本,换行替换为空格(详情页简介正则不接受标签)
episode_count正文「集数:N集」详情页集数徽章数据源
share_url正文「下载地址:URL」提取码存在时追加「提取码:xxxx」
publishdate + updatedatcreatetime / lastreply_time发帖时间取 publishdate 的日期 + updatedat 的时分秒,避免同日期全部归为零点
updated_atupdate_time更新时间与源站最后修改时间一致
  • 去重键:video_url = {源站}/drama/{id},重复执行只更新不新增。
  • 并发控制:runtime/duanju_sync.lock 文件锁,同一时间只允许一个同步任务,重复触发会返回「同步正在进行中」。
  • 分类统计:同步结束后自动刷新目标分类的 topic_count。
  • 前台展示:同步入库的短剧话题状态为已发布(status=1),无需审核即可在前台列表看到。

7. 宝塔定时同步

提供 Shell 脚本与 URL 两种触发方式,按服务器环境任选其一。

7.1 方式一:Shell 脚本 / ThinkPHP 命令(推荐)

宝塔面板「计划任务」→ 任务类型选「Shell 脚本」,执行周期按需选择(如每天 03:00),脚本内容:

# 增量:每次抓 1 页
/www/server/php/82/bin/php /www/wwwroot/你的站点/themes/duanju/bin/sync.php --limit=24 --pages=1
# 等价的 ThinkPHP 命令(需先进入项目根目录)
cd /www/wwwroot/你的站点 && /www/server/php/82/bin/php think duanju:sync --limit=24 --pages=1
# 全量:逐页抓取,最多 200 页
/www/server/php/82/bin/php /www/wwwroot/你的站点/themes/duanju/bin/sync.php --all --max-pages=200

可用参数:

参数说明
--limit=N单页条数(1–50)
--pages=N抓取页数,默认 1;仅增量时使用
--all开启游标循环全量抓取
--max-pages=N全量模式最大页数(默认 200)
--cursor=xxx从指定游标继续
--proxy=http://ip:port临时指定代理,覆盖 sync_proxy
--update=0本次仅新增,不更新已存在记录
--source=https://...临时指定源站

脚本输出逐行日志并以退出码标识结果(0 成功 / 1 失败),可在宝塔计划任务日志中直接查看。

若提示找不到 PHP,请把 /www/server/php/82/bin/php 换成面板「软件商店 → PHP」中实际安装的版本路径。

7.2 使用建议

  • 源站更新频繁时用「每小时增量」,每天凌晨再跑一次全量补漏。
  • 服务器位于境外或源站访问不稳定时,在 5.6 中配置 sync_proxy。
  • 同步只写入数据库,不下载封面图片;如需本地化图片,请另行处理(主题支持远程封面地址)。

8. 页面与功能详解

8.1 全局布局(layout.html)

  • 固定顶栏:滚动后自动加深背景并出现阴影;左侧为胶片图标 + 站点名称,中部为导航,右侧为搜索按钮与用户区。
  • 桌面导航:「首页」+ 社区前 4 个一级分类。一级分类含子分类时渲染为下拉面板——面板顶部为彩色圆点 + 分类名(第 1 个红色、第 2 个蓝色、第 3 个绿色、其余橙色),下方以标签云形式列出全部子分类;无子分类的一级分类直接显示为导航项。当前所在分类高亮。
  • 搜索弹窗:点击「搜索短剧」按钮或按 / 键打开;输入后按 Enter 跳转至社区搜索结果页(search?q=关键词);按 Esc 或点击遮罩关闭。
  • 用户区:已登录显示头像 + 昵称,悬停展开「个人中心 / 我的收藏 / 退出登录」下拉菜单;未登录显示「登录」按钮,点击弹出社区登录弹窗(支持账号密码、手机短信登录、注册、找回密码,样式随主题纯黑配色)。
  • 移动端:顶栏显示汉堡按钮,点击展开抽屉菜单(首页 + 分类树);搜索同样可用。
  • PJAX:站内链接无刷新跳转,跳转后自动关闭抽屉/弹窗并重置滚动状态。
  • 页脚:免责声明区块(内容来自 disclaimer_content 配置,留空用内置默认文案)+ 版权行 + 备案链接 + 「回到顶部」按钮。

8.2 首页 / 分类页 / 搜索结果页(index.html)

  • 纯海报网格布局(无侧边栏),页面标题按上下文自动推导:分类页显示分类名 → 搜索页显示「搜索:关键词」→ 首页显示「精选短剧」,tab=new 时显示「最新发布」。
  • 每张卡片自动解析:

 - 集数:优先从正文提取首个「N集」,回退从标题提取,显示为角标 + meta 行;

 - 日期:发布时间格式化为 mm-dd 上新;

 - 封面:thumburl 海报字段 → 回退正文首个 <img> → 均无时显示内置占位图。封面地址经 communitymedia_url() 处理以兼容本地化/远程化图片。

  • 分页条仅在总页数 > 1 时显示(上一页 / 页码 / 下一页),翻页时自动保留当前 URL 的其他查询参数。
  • 列表页输出 ItemList 结构化数据(见第 12 节)。

8.3 详情页(topic.html)

  • 双栏头部:左侧 2:3 大海报;右侧依序为大标题、徽章行(待审核/已锁定状态、集数徽章、发布日期、所属分类、浏览量、编辑入口)、导演/主演信息、简介。
  • 标题智能解析:标题中的「(全111集)」「(更新至20集)」「(共36集)」等后缀自动剥离为集数徽章,正文中不再重复显示。
  • 元信息剥离:正文中的「导演:xxx」「主演:xxx」段落会被提取到信息区展示并从正文流中移除;主演支持 /、、、,、, 分隔,信息区最多展示 8 位。
  • 简介提取:剥离上述内容后,正文首个纯文本 <p> 段作为简介展示(段内「集数:N集」字样会自动去除)。
  • 网盘资源区:以毛玻璃卡片列出全部解析到的下载链接(详见第 10 节),顶部显示「网盘资源」标题与集数统计,底部附资源来源提示。
  • 剩余正文:剥离后的剩余内容(剧照、图文介绍等)在资源区下方原样展示。
  • 互动区:点赞、收藏、评论数直达、分享、举报按钮;评论区沿用社区完整能力(表情面板、验证码、楼层排序、嵌套回复);未登录用户显示「登录后参与评论」引导卡片。
  • 内容锁定:若话题启用了社区的内容锁(回复可见/登录可见/金币解锁/VIP 可见),锁定区块按社区原逻辑渲染,此时正文与资源区均不输出。

8.4 单页(page.html)

关于我们、联系我们、隐私政策、使用条款、免责声明、版权投诉等社区单页以主题同款排版渲染(大标题 + 正文卡片)。

9. 内容发布规范

在后台或前台发布短剧话题时,按以下结构填写正文,主题会自动解析各字段:

导演:张三
主演:李四 / 王五 / 赵六

这是一段简介文字,系统会把剥离元信息后的首个纯文本段提取为简介。

这里可以放剧照等其余图文内容(会展示在资源区下方)。

下载地址:夸克网盘 https://pan.quark.cn/s/xxxxxx 提取码:ab12
下载地址:百度网盘 https://pan.baidu.com/s/xxxxxx 提取码:cd34

字段解析规则:

内容解析方式
标题可含「(全111集)」「(更新至20集)」等集数后缀,展示时自动剥离为徽章
导演独立段落 导演:xxx(全角/半角冒号均可),提取后从正文移除
主演独立段落 主演:xxx,分隔符支持 / 、 , ,,最多展示 8 位
简介剥离后的首个纯文本段落
集数标题后缀 → 正文「集数:N集」→ 正文「全N集 / 共N集」,三级兜底
下载地址每个 下载地址: 段落解析出链接与提取码,生成一张资源卡片
封面话题海报字段 thumburl(或详情页 videocover)→ 正文首个 <img>
提示:可在编辑器中将「导演:」「主演:」「下载地址:」各占一个段落(编辑器会包裹为 <p>),解析最稳定。

10. 下载资源解析规则

每个「下载地址:」段落中可包含多个链接(空格或逗号分隔),提取码按段落独立解析(格式 提取码:xxxx,3–10 位字母数字)。链接按域名 + 路径去重。

网盘类型自动识别:

链接特征显示名称图标配色
pan.quark.cn夸克网盘蓝色
pan.baidu.com百度网盘蓝色
alipan.com / aliyundrive阿里云盘橙色
pan.xunlei迅雷云盘蓝色
其他 https 链接网盘下载灰色
  • 未解锁时资源卡片显示名称、网盘标签与提取码(不含明文链接),右侧为「回帖可见」/「登录后回帖可见」按钮,点击自动滚动至评论区。
  • 解锁后卡片整体为外链,点击新窗口打开对应网盘,链接带 rel="nofollow noopener noreferrer"。

11. 资源可见权限机制

下载链接的可见性按以下优先级判定(正文未被内容锁定的前提下):

优先级身份/条件结果
1管理员(后台登录会话或社区管理员身份)直接可见
2话题作者本人直接可见
3VIP 用户由 VIP 会员插件 VipService::bypasses('netdisk', $actor, $userId, $categoryId) 按网盘权益配置判定(真实命名空间 plugins\vip,未安装时跳过)
4已在本话题发表过有效回复的用户(回复状态正常且未删除)解锁可见
5已登录但未回帖锁定,按钮「回帖可见」
6游客锁定,按钮「登录后回帖可见」,点击跳转登录

判定细节:

  • 回帖解锁查询条件为 topicid 匹配、status = 1 且 deletetime = 0,管理员与普通用户分别按 adminid / userid 匹配。
  • 所有解锁判定失败均静默降级为锁定状态,不抛出异常。
  • 话题本身设置了内容锁(content_locked)时,整页正文与资源区都不渲染,走社区统一的锁定区块逻辑。

12. SEO 与结构化数据

  • 全站 meta:标题、关键词、描述直接使用社区配置;Favicon 沿用社区配置;六大搜索引擎站长验证 meta(百度 / Google / Bing / 360 / 搜狗 / 神马)按社区配置项 seoverify* 自动输出;统计代码注入页脚。
  • 详情页独立 TDK:

 - title:详情页为「话题标题 - 站点名称」,分类页为「分类名(优先读 seo_title) - 站点名称」,搜索页为「搜索:关键词 - 站点名称」;

 - description:详情页优先取话题 excerpt 摘要,其次正文去标签截取 160 字;分类页优先读 seo_description;

 - keywords:详情页自动拼接话题标题 + 所属分类 + 标签名;分类页优先读 seo_keywords;

 - 搜索页与后台私密页自动附加 robots=noindex,follow。

  • 列表页:输出 ItemList JSON-LD,包含当前页全部条目的位置、名称与详情页 URL。
  • 详情页:

 - Open Graph(og:type=article、og:url、og:title、og:description、og:image)与 Twitter Card(summarylargeimage)分享 meta;

 - 分享图取值顺序:视频封面 videocover → 海报 thumburl → 正文首个 <img>;

 - 分享描述取值:话题摘要 excerpt → 正文去标签后前 120 字;

 - BreadcrumbList + WebPage JSON-LD(首页 → 所属分类 → 当前话题)。

  • 站点地图端点(由框架 Sitemap 控制器提供,所有主题通用):
端点说明缓存
/sitemap.xml标准 XML 站点地图,含首页 + 全部有效分类 + 最新 5000 篇文章10 分钟
/robots.txt爬虫规则,自动携带 Sitemap: 行,屏蔽后台、登录、下载守卫接口60 分钟
/rss.xmlRSS 2.0 订阅源,最近 30 篇文章10 分钟
上述端点无需主题配置,框架自带路由注册在 route/app.php 最前部;部署后可直接提交到百度、Google、Bing、360、搜狗等站长平台。
  • 详情页 URL:沿用社区路由 community_url('topic', ['id' => N])。

13. 升级与缓存

  • 模板缓存:主题启用时宿主会把社区模板与本主题模板合并到 runtime/theme_front/duanju/。若手动替换过模板文件且页面未更新,删除该目录后刷新前台即可触发重建。
  • 静态资源缓存:静态 CSS 以 /static/duanju/theme.css?v={版本号} 引用,版本号取自 plugin.json 的 version。修改 theme.css 后请同步提升 plugin.json 中的版本号(如 1.0.0 → 1.0.1),以破除浏览器缓存。
  • 升级保留数据:宿主对已安装主题执行升级时会调用 install(),此时因插件表已有 duanju 记录,不会重复清空社区数据。
  • OPcache:修改 PHP 文件后若未生效,重启 php-cgi / PHP-FPM 进程。

14. 常见问题排查

Q1:启用后页面样式错乱或仍是旧版社区样式?

删除 runtime/theme_front/duanju/ 目录后刷新前台;确认 public/static/duanju/theme.css 存在(不存在可在后台停用再启用主题触发资源复制)。

Q2:导航栏没有显示分类?

导航读取社区的一级分类(最多前 4 个)。请确认社区后台已创建分类;新启用主题后数据被清空,需要重新创建分类。

Q3:详情页没有出现网盘资源卡片?

检查正文是否包含独立段落的 下载地址: 且其后有 https:// 链接;确认该话题未开启内容锁;确认当前账号是否有权限(普通用户需回帖后刷新页面)。

Q4:VIP 用户看不到下载链接?

确认已安装并启用 VIP 会员插件(插件标识 vip,非 vipp),且会员的网盘权益(netdisk bypass)配置允许放行对应分类/作者的内容;若已启用但仍无法放行,请检查 VIP 插件版本是否支持 VipService::bypasses(feature, actor, userId, categoryId) 调用签名。

Q5:卡片封面显示占位图?

为话题填写海报字段(thumb_url),或确保正文第一个 <img> 为有效封面;本地化图片需确认已成功落地到 public/uploads/。

Q6:修改了 theme.css 但前台没变化?

提升 plugin.json 的 version 号破缓存(见第 13 节),并确认修改的是 themes/duanju/static/theme.css 源文件而非 public/static/duanju/ 下的拷贝(拷贝会在下次启用/升级时被覆盖,但源文件才是维护对象)。

Q7:搜索框按 / 没反应?

输入焦点在输入框内时 / 快捷键不生效(避免冲突),先点击页面空白处再按 /。

Q8:误启用导致社区数据被清空?

主题清空不可逆,请依赖数据库备份恢复。日常运维建议在停用/启用主题等批量变更前先备份数据库。

Q9:同步提示「同步失败」或连接超时?

服务器可能无法直连源站。代理留空时同步会先直连,失败后自动探测本机常见代理端口(7897 / 7890 / 10809 / 1080)以及 HTTPS_PROXY 等环境变量;仍未成功时在同步命令中追加 --proxy=http://127.0.0.1:7897(宝塔计划任务的 Shell 脚本中一并写入)后重试。若提示「同步正在进行中」,说明已有任务在跑(文件锁),等待结束后重试。

Q10:后台找不到「短剧一键同步」菜单?

1.2.05 起主题采用零路由方案:不再提供后台同步页面与菜单,同步统一走 CLI(php themes/duanju/bin/sync.php,宝塔计划任务配置见第 7 节)。1.2.04 及之前版本升级后,旧「短剧一键同步」菜单会在下次启用/升级主题时自动移除。请勿用「停用再启用」代替升级,那会清空社区数据。

Q11:后台出现「主题配置」入口或同步页报错/404?

1.2.07 起采集配置即主题自建「短剧采集」页(菜单位于「插件列表」下),同步无 Web 页面(纯 CLI)。后台仍显示旧「主题配置」菜单时,执行一次 php themes/duanju/bin/register.php(或应用中心对主题点升级)即自动清理并注册新菜单。前台出现 404 时多为 plugin 表缺少主题记录(手动部署未走应用中心安装所致),同样执行该脚本补登记。

Q13:宝塔/Linux 环境后台「短剧采集」菜单访问 404?

「短剧采集」菜单的路由由主题在安装/启用时自动生成的 plugins/duanju/routes.php(路由胶水)注册,正常情况下不会 404。仍 404 时按序排查:

  1. plugins/duanju/routes.php 是否存在——不存在说明生成失败,检查 plugins/ 目录对 PHP 运行用户是否可写(宝塔默认 www 用户可写),修正权限后在应用中心对主题点「升级」(或执行 php themes/duanju/bin/register.php)重新生成;
  2. 文件存在仍 404 时为路由缓存陈旧,升级/注册动作会自动失效启动缓存,等待一次请求即可自愈。

Q12:同步后详情页没有简介?

源站简介为空时不会写入简介段。正常同步的简介为纯文本(换行已转为空格),若手动编辑正文,请不要在简介段中插入 <br> 等标签,否则详情页无法识别。

15. 卸载与回退

  1. 后台「应用中心 → 主题管理」停用「夸克短剧主题」,社区恢复使用默认模板与样式。
  2. 卸载主题时自动执行:

  - 幂等清理「短剧采集」及历史版本遗留的「主题配置」「短剧一键同步」菜单;

  - 删除 public/static/duanju/ 静态资源;

  - 删除安装/启用时自动生成的 plugins/duanju/ 路由胶水目录(1.2.09 起)。

  1. 卸载不会删除社区数据;themes/duanju/ 源目录保留,可随时重新启用。
  2. 卸载后建议删除 runtime/themefront/duanju/ 合并缓存目录,以及同步状态与锁文件 runtime/duanjusyncstate.json、runtime/duanjusync.lock。

16. 目录结构

themes/duanju/           # 主题主体包(控制器、视图、服务、CLI)
├── plugin.json          # 插件元信息(版本、宿主依赖、启用警告)
├── theme.json           # 主题声明(css 入口、禁用配色选择器)
├── ThemePlugin.php      # 后端逻辑:「短剧采集」菜单注册、采集配置表单、安装/卸载、数据清空
├── SyncService.php      # 同步服务:抓取源站、去重入库、日志与状态持久化
├── controller/admin/    # 后台控制器(由 plugins/duanju/routes.php 加载)
│   ├── Base.php         # 基类:视图路径配置 + 主题模板渲染
│   └── Index.php        # 采集配置页渲染与保存(含站点统计)
├── view/admin/
│   └── config.html      # 采集配置页(红黑主题美化:统计卡 + 分组表单 + 悬浮保存条)
├── bin/
│   ├── sync.php         # CLI 同步脚本(宝塔计划任务调用,支持 --clear 清空)
│   └── register.php     # CLI 保数据注册脚本(手动部署后补 plugin 表记录)
├── icon.svg             # 主题图标
├── README.md            # 本文档
├── static/
│   └── theme.css        # 主题样式:变量覆盖、导航、网格、详情页、资源区、页脚
└── view/front/
    ├── layout.html      # 全局布局:顶栏导航、搜索弹窗、登录弹窗、页脚
    ├── index.html       # 首页/分类/搜索结果:海报网格 + 分页
    ├── topic.html       # 详情页:双栏头部、资源区、正文、互动与评论
    └── page.html        # 社区单页排版

plugins/duanju/          # 路由胶水(安装/启用主题时自动生成,卸载时自动删除)
└── routes.php           # community_duanju 后台路由注册(闭包内加载主题控制器)
线上部署清单(1.2.09 起只需两步):① 上传 themes/duanju/ 整目录;② 应用中心安装/启用主题(或执行一次 php themes/duanju/bin/register.php)。后台路由胶水 plugins/duanju/routes.php 由主题自动生成、卸载时自动清除,无需手工上传;唯一前提是 plugins/ 目录对 PHP 运行用户可写(宝塔默认 www 用户可写)。仍 404 时见 Q13 排查。

17. 更新日志

1.2.09(2026-10-21)

  • 部署回归两步式:恢复「安装/启用主题时自动生成 plugins/duanju/routes.php 路由胶水、卸载时自动删除」(ThemePlugin 内置胶水模板,install() / registerMenus() 幂等写入、内容一致不重写,uninstall() 自动清理)。线上部署只需上传 themes/duanju/ 整目录并在应用中心启用(或执行一次 php themes/duanju/bin/register.php),无需再手工上传胶水文件;唯一前提是 plugins/ 目录对 PHP 运行用户可写,生成失败时记录告警日志且不中断安装(仍 404 见 Q13)。
  • bin/register.php 头注释同步更新(胶水由 install() 自动生成,脚本本身无胶水逻辑)。

1.2.08(2026-10-21)

  • 「短剧采集」页面重做(修复裸 JSON + 美化):1.2.07 将菜单指向宿主通用配置端点,但该端点(Apps::config)仅返回 JSON(表单渲染依赖插件管理页弹窗 JS),整页访问只见裸 JSON。现恢复 plugins/duanju/routes.php 胶水路由,改由主题自建配置页 /admin/community_duanju/config。
  • 页面美化:红黑渐变 Hero 头部、站点统计卡(短剧总数 / 同步分类 / 最近同步时间与增更数)、分组表单(图标标签 + 聚焦高亮 + 输入后缀提示)、悬浮保存条(含 CLI 命令提示)、右上角 Toast 反馈;深浅色模式自适应宿主后台变量。
  • 保存接口:community_duanju/save 白名单校验 5 项参数(源站协议、代理格式、分类 ID 非负、数量 1–50、更新策略 0/1),走 PluginService::saveConfig 落库。
  • 路由缓存自愈:registerMenus() 末尾失效启动缓存(1.2.04 机制回归),消除「已启用但缓存陈旧」404。

1.2.07(2026-10-21)

  • 新增「短剧采集」配置入口:后台「插件列表 → 短剧采集」菜单指向宿主通用配置页(/admin/apps/config?id=duanju,官方机制零路由),可维护同步源站、代理、目标分类、单页数量、更新策略 5 项采集参数,保存后 CLI 定时同步按最新配置执行(命令行参数仍可逐次覆盖,宝塔命令无需改动)。
  • syncService() 恢复读取主题配置作为同步默认值,CLI 未传参时按配置执行。
  • 站点名称、SEO、页面文案等仍直接使用社区插件全局配置,不重复提供表单。

1.2.06(2026-10-21)

  • 移除「主题配置」入口:主题不再提供专属配置菜单与 30 项配置表单(configSchema()/defaultConfig() 返回空),站点名称、Logo、SEO、统计代码、单页文案、备案信息等全部直接使用社区插件的全局配置,消除双份配置的维护负担。
  • 同步参数 CLI 化:原主题配置中的同步设置(源站/代理/分类/数量/更新策略)改由 sync.php 命令行参数提供(--source/--proxy/--category/--limit/--update),新增 --category 参数;SyncService 使用内置默认值,syncService() 不再读取主题配置。
  • 启用/升级主题时幂等清理历史遗留的「主题配置」「短剧一键同步」菜单。

1.2.05(2026-10-21)

  • 零路由方案(移除胶水文件):删除 plugins/duanju/ 与全部自定义后台路由,部署仅需主题目录一个包,彻底消除宝塔等环境下的后台 404 问题。
  • 主题配置改走宿主通用配置页:菜单「插件列表 → 主题配置」指向 /admin/apps/config?id=duanju,由宿主 Apps::config 按主题 configSchema 渲染与保存,功能等价(此前自定义 config.html 弃用删除)。
  • 同步改为纯 CLI:后台同步页面移除,bin/sync.php 新增 --clear(交互确认)与 --clear --force(脚本直清)承担原「一键同步/全量同步/清空数据」全部能力;旧「短剧一键同步」菜单在启用/升级时自动清理。
  • 移除未实现的 sync_token 配置项:/duanju-sync/{token} URL 触发接口历史上从未注册路由,属文档误导,一并删除相关配置与 README 章节。

1.2.04(2026-10-20)

  • 后台路由适配 community 插件风格:入口从 /admin/duanju/ 改为 /admin/communityduanju/(与 communityconfig 等同款命名),降低独立路由辨识成本。
  • 控制器与视图收编进主题目录:controller/admin/、view/(含 front)全部移至 themes/duanju/,plugins/duanju/ 仅保留 routes.php 胶水文件(闭包内 require_once 手动加载控制器,不依赖 PSR-4 目录结构与 autoload 刷新)。线上部署从此只需「主题目录 + 1 个胶水文件」。
  • 路由缓存自愈:registerMenus() 末尾自动失效启动缓存,下次请求回退实时扫描已安装包并注册路由,消除「已启用但缓存陈旧」导致的线上 404。
  • README 部署清单强化:Q13 写明三要素(plugin 表记录 / 胶水文件 / 路由缓存)与线上排查步骤。

1.2.03(2026-10-20)

  • 宝塔环境后台 404 修复:后台「主题配置」与「短剧一键同步」的路由注册依赖 plugin 表中的主题记录;手动部署主题目录(未走应用中心安装)时记录缺失,导致两个后台入口 404(前台渲染与后台路由注册是两套机制,前台正常掩盖了问题)。已在本地复现并验证修复。
  • 安装钩子防误清:install() 现于记录缺失时先检查社区表——分类与文章非空则只补登记保留数据,不再清空运营中的短剧内容;仅全新空库才执行建库清空。
  • 新增 CLI 保数据注册脚本 themes/duanju/bin/register.php:一条命令完成补记录、注册菜单、启用主题、重建路由缓存,幂等可重复执行,适配宝塔/SSH 环境(详见 FAQ Q13)。

1.2.02(2026-10-20)

  • 发帖时间与源站一致:源站 publishdate 仅含日期,同步时结合 updatedat 的时分秒生成 createtime / lastreplytime,避免同日期短剧全部归为零点导致排序与展示失真;updatetime 同步取源站 updated_at,不再使用同步时的当前时间。
  • 更新已有短剧时同步刷新发帖时间:增量更新路径现一并回写 createtime / lastreplytime / updatetime,确保历史数据的时间字段随源站更新。
  • 首页日期与详情页一致:列表页 createtime 经模型 toArray() 后为格式化日期字符串,原代码 (int) 强转只取到年份导致始终显示 01-01;现兼容字符串与数字两种形态还原时间戳,日期格式统一为 Y-m-d,与详情页 getData('createtime') 取值一致。
  • 开发约定:本主题及今后新建的插件/主题一律不得修改宿主项目(app/、config/、route/、view/ 等)的任何文件;所需能力通过插件目录(plugins/duanju/)与主题目录(themes/duanju/)内的自有文件实现。

1.1.2(2026-10-19)

  • 后台路由修复:主题配置与短剧一键同步改为独立插件路由,不再依赖框架内置 Apps::theme() 与 Apps::duanjuSync() 方法,修复点击菜单无反应/404 问题。
  • 视图加载修正:后台控制器视图路径指向宿主 view/admin/ 目录,插件视图通过完整路径渲染,修复 View::engine()->config() 不支持 view_path 键导致的 500 错误。
  • 脚本加载时序:后台视图 JS 从 {block name="content"} 移至 {block name="js"},确保 jQuery 加载后再执行,修复 $ is not defined 错误。

1.1.1(2026-10-19)

  • VIP 插件引用修正:主题模板与下载守卫插件中曾错误引用 plugins\vipp 命名空间,现已统一修正为真实命名空间 plugins\vip,VIP 用户网盘权益放行逻辑恢复生效。
  • SEO 独立 TDK:layout.html 的 title / description / keywords 现支持详情页专属取值(话题标题+摘要+标签拼接)、分类页专属取值(优先读分类 seotitle / seodescription / seo_keywords);搜索页与私密页自动附加 robots=noindex。
  • 站长验证 meta 输出:六个 seoverify* 配置项(百度 / Google / Bing / 360 / 搜狗 / 神马)现由 FrontBase 透传到视图并在 layout.html 输出对应 meta 标签。
  • 站点地图端点:框架新增 /sitemap.xml(26 URL,10 分钟缓存)、/robots.txt(自动携带 Sitemap 行)、/rss.xml(RSS 2.0)三个标准 SEO 端点,部署后可直接提交各站长平台。
  • 修复 layout.html 中 og:image / twitter:image 在详情页取海报时未绝对化导致分享卡片图片失效的场景。

1.1.0(2026-10-18)

  • 新增「短剧一键同步」:后台页面可视化抓取源站短剧,支持增量/游标全量同步、实时日志与状态概览。
  • 新增同步设置 6 项:源站、代理、目标分类、单页数量、更新策略、访问令牌。
  • 新增宝塔定时同步方案:CLI 脚本 bin/sync.php 与带令牌的 URL 触发接口 /duanju-sync/{token}。
  • 同步入库自动去重(videourl)、文件锁防并发、自动创建/复用「短剧」分类并刷新 topiccount。
  • 后台主题卡片新增「一键同步」快捷按钮;主题简介文案调整为主流短剧站点表述。

1.0.0(2026-10-18)

  • 首个版本。
  • 纯黑短剧风格:固定顶栏 + 分类下拉导航 + 海报网格首页 + 详情页双栏布局。
  • 正文智能解析:标题集数剥离、导演/主演/简介提取、下载地址多网盘识别(夸克/百度/阿里/迅雷)与提取码解析。
  • 资源回复可见权限体系(管理员/作者/VIP/回帖用户四级放行)。
  • 首次启用自动清空社区数据并重置自增 ID,便于短剧站重新建库。
  • SEO:ItemList / BreadcrumbList / WebPage 结构化数据、OG 与 Twitter Card、六大站长验证码、统计代码。
  • 完整兼容社区登录弹窗、评论、点赞、收藏、举报、PJAX 与验证码体系。


更新记录 (13)

  • v1.2.28 2026-10-26
    更新定时采集
  • v1.2.27 2026-10-25
    优化适配VIP插件通知
  • v1.2.26 2026-10-24
    后端配置页进行重新布局
  • v1.2.23 2026-10-24
    新增白天模式,自自主切换
  • v1.2.22 2026-10-24
    优化手机端显示
  • v1.2.20 2026-10-23
    新增页脚信息
  • v1.2.10 2026-10-21
    新增下载设置
  • v1.2.09 2026-10-21
    主题设置走社区配置
  • v1.2.03 2026-10-20
    修复路由注册问题
  • v1.2.02 2026-10-20
    修复日期格式
  • v1.2.01 2026-10-20
    去掉首页community.html尾巴
  • v1.1.2 2026-10-19
    修复BUG
  • v1.1.1 2026-10-19
    ## 17. 更新日志 ### 1.1.1(2026-10-19) - **VIP 插件引用修正**:主题模板与下载守卫插件中曾错误引用 `plugins\vipp` 命名空间,现已统一修正为真实命名空间 `plugins\vip`,VIP 用户网盘权益放行逻辑恢复生效。 - **SEO 独立 TDK**:`layout.html` 的 title / description / keywords 现支持详情页专属取值(话题标题+摘要+标签拼接)、分类页专属取值(优先读分类 `seo_title` / `seo_description` / `seo_keywords`);搜索页与私密页自动附加 `robots=noindex`。 - **站长验证 meta 输出**:六个 `seo_verify_*` 配置项(百度 / Google / Bing / 360 / 搜狗 / 神马)现由 `FrontBase` 透传到视图并在 `layout.html` 输出对应 meta 标签。 - **站点地图端点**:框架新增 `/sitemap.xml`(26 URL,10 分钟缓存)、`/robots.txt`(自动携带 Sitemap 行)、`/rss.xml`(RSS 2.0)三个标准 SEO 端点,部署后可直接提交各站长平台。 - 修复 `layout.html` 中 `og:image` / `twitter:image` 在详情页取海报时未绝对化导致分享卡片图片失效的场景。 ### 1.1.0(2026-10-18) - 新增「短剧一键同步」:后台页面可视化抓取源站短剧,支持增量/游标全量同步、实时日志与状态概览。 - 新增同步设置 6 项:源站、代理、目标分类、单页数量、更新策略、访问令牌。 - 新增宝塔定时同步方案:CLI 脚本 `bin/sync.php` 与带令牌的 URL 触发接口 `/duanju-sync/{token}`。 - 同步入库自动去重(`video_url`)、文件锁防并发、自动创建/复用「短剧」分类并刷新 `topic_count`。 - 后台主题卡片新增「一键同步」快捷按钮;主题简介文案调整为主流短剧站点表述。 ### 1.0.0(2026-10-18) - 首个版本。 - 纯黑短剧风格:固定顶栏 + 分类下拉导航 + 海报网格首页 + 详情页双栏布局。 - 正文智能解析:标题集数剥离、导演/主演/简介提取、下载地址多网盘识别(夸克/百度/阿里/迅雷)与提取码解析。 - 资源回复可见权限体系(管理员/作者/VIP/回帖用户四级放行)。 - 首次启用自动清空社区数据并重置自增 ID,便于短剧站重新建库。 - SEO:ItemList / BreadcrumbList / WebPage 结构化数据、OG 与 Twitter Card、六大站长验证码、统计代码。 - 完整兼容社区登录弹窗、评论、点赞、收藏、举报、PJAX 与验证码体系。
微信客服 微信客服 QQ官方交流群 QQ官方交流群