Repository navigation
ThemeMgr
pollybird edited this page Sep 7, 2026
·
1 revision
入口:系统设置 → 主题管理(权限 system:settings)。
- 使用中(绿色高亮):当前启用主题。
- 未启用:可一键启用。
- 模板不完整(标红):缺失必备模板,操作按钮灰显。
支持 .zip / .tar.gz / .tgz,8 步校验:
- 扩展名白名单
- 压缩包完整性
- 路径穿越拦截(预检 +
_safe_join) - 符号链接/特殊文件静默跳过
- manifest 合法 JSON + slug 格式正则
- 必备模板 7 个全量存在
- 单目录/平铺形态自动归一化
- 内置主题禁止覆盖;同名自定义主题先删后传
全程临时目录,任何失败不写入
themes/,finally 彻底清理。
- 启用:启用前再次强检必备模板;前台即时生效,无需重启。
- 删除:红色警告模态框 + 图形验证码确认;内置/启用中主题不可删。
- 下载:打包为 zip(含全部静态资源),可在其他站点直接上传复用。
get_active_theme() 在主题目录不存在或模板不全时自动回退 default,杜绝前台白屏。