Skip to content

ThemeMgr

pollybird edited this page Sep 7, 2026 · 1 revision

主题管理

主题管理

入口:系统设置 → 主题管理(权限 system:settings)。

主题列表

  • 使用中(绿色高亮):当前启用主题。
  • 未启用:可一键启用。
  • 模板不完整(标红):缺失必备模板,操作按钮灰显。

上传主题

支持 .zip / .tar.gz / .tgz,8 步校验:

  1. 扩展名白名单
  2. 压缩包完整性
  3. 路径穿越拦截(预检 + _safe_join)
  4. 符号链接/特殊文件静默跳过
  5. manifest 合法 JSON + slug 格式正则
  6. 必备模板 7 个全量存在
  7. 单目录/平铺形态自动归一化
  8. 内置主题禁止覆盖;同名自定义主题先删后传

全程临时目录,任何失败不写入 themes/,finally 彻底清理。

启用 / 删除 / 下载

  • 启用:启用前再次强检必备模板;前台即时生效,无需重启。
  • 删除:红色警告模态框 + 图形验证码确认;内置/启用中主题不可删。
  • 下载:打包为 zip(含全部静态资源),可在其他站点直接上传复用。

安全兜底

get_active_theme() 在主题目录不存在或模板不全时自动回退 default,杜绝前台白屏。

Clone this wiki locally