[appearance_theme]外观主题热
- charcoal-fire2026-08-16外观主题ID appearance_theme版本 1.4.0插件制作者 charcoal-fire免费2030 行 / 155.4 KBHook / 路由 / 后台页自定义论坛外观:支持完整全站主题、用户权限、浅色/深色、定时切换、内置与个人配色及自定义字体。app/plugins/appearance_theme/plugin.php开发日志已有 8 条
个人独立维护项目。
- 2026-08-26 15:29版本 1.4.0 0909a43f3d65 更新:1.4.0 更新: - 后台新增完整全站浅色/深色主题编辑器,可分别使用 6 套内置配色、27 项详细设置与全站定时。 - 新增“完整自定义 / 仅内置主题 / 统一全站主题”三档用户权限;切换权限不会删除用户原有主题、个人配色、字体或定时。 - 仅内置主题用户可分别选择浅色和深色配色并保留个人定时;统一全站主题下个人设置只读。 - 访客预览升级为完整未保存草稿预览,不保存配置或退出管理员。 - release
- 2026-08-24 18:52版本 1.3.1 13c5a197bb51 更新:1.3.1 更新: - 普通首页和帖子页仅加载约 7 KB CSS 与 1.7 KB JavaScript;完整编辑器只在个人和后台设置页按需加载。 - 设置页资源改用同源长期缓存,并保留可审阅的前端源码和确定性构建校验。 - Poppins 改为按需下载,未使用时不请求;使用时支持一年 immutable 缓存与 ETag 304。 - 自定义字体普通页面只读取轻量元数据;字体内容仅在真实 20
- 2026-08-21 17:25版本 1.3.0 d3e960f9a3a6 更新:1.3.0 更新: - 新增按设备本地时间自动切换浅色/深色,可分别设置浅色和深色开始时间,支持跨午夜。 - 时间编辑器合并为单一“启用定时 / 定时已启用”按钮;修改时间立即更新互补时间段,底部“保存”统一同步账号。 - 手动切换作为当前设备临时覆盖,可跨页面保持,并在下一时间边界自动恢复计划模式。 - 定时设置随账号同步,个人配色和导入/导出继续保持纯配色。 - 普通首页和帖子页无需刷新即可在
- 2026-08-20 13:46版本 1.2.2 a77921295d6e 更新:1.2.2 更新: - 优化单文件体积:六套内置配色改由 PHP 统一提供,删除前端重复数据,避免前后台配色漂移。 - 源码从 197077 字节降至 192696 字节,分享正文余量由 2911 字节增加到 7292 字节。 - 加强“以访客身份预览”的宿主兼容检查;无法安全建立匿名请求时会恢复原身份并停止预览。 - 修复本地 PHP 插件市场 CA 证书链配置,并完成真实市场刷新、全新在线安装
- 2026-08-18 18:34版本 1.2.1 aa55eba0d1f9 更新:1.2.1 更新: - 全站默认主题改用更直观的分段开关和六套紧凑主题列表。 - 后台加入完整论坛缩略预览,未保存的明暗模式与配色选择会即时更新。 - 新增“以访客身份预览”,可在真实匿名首页查看当前选择,不会保存配置或退出管理员账号。 - 管理员个人主题覆盖全站默认主题时会明确提示。 - 桌面端标题与说明合并为一行,移动端空间不足时自动换行。 - 已在 bbs1org v8.6.5 的桌面、37
- 2026-08-18 16:04版本 1.2.0 169719f71c26 更新:新增站长全站默认主题,可选择默认明暗模式与 6 套内置配色,个人主题优先;修复 footer 未应用主题;优化论坛默认浅色帖子链接颜色;为 appearance_theme_font_record() 增加请求级缓存,并在字体上传、替换或删除后失效缓存。已通过 293 项单元测试、SQLite 89 项及 bbs1org v8.6.5 桌面与移动页面验证。
- 2026-08-17 13:39版本 1.1.2 1225b1a03ede 更新:修复后台插件按钮、楼层点赞、在线安装、认证状态及版本下载在自定义主题下的低对比问题;修复回复区 Markdown 工具栏被放大成绿色块状按钮,并保持移动回复框文字、光标和选区可读。已通过 284 项单元测试、SQLite 89 项,并在 bbs1org v8.6.5 的桌面、375x812 与 320x700 页面完成验证。
主楼点赞与点评3nodebuy2026-08-16
charcoal-fire2026-08-16
bbs1org2026-08-26
插件质量报告
插件:
appearance_themeHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 page.head 全站页面 head 否 5 - - - 读 plugin_appearance_theme_users, plugin_appearance_theme_fonts user.menu_links 个人卡片/移动端我的菜单(展示位置:个人卡片) 否 4 - - - - admin.tabs 后台管理页标签栏(展示位置:后台Tab) 否 1 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
- charcoal-fire2026-08-16
版本 1.1.1 更新:
v1.1.1 更新插件简介;代码字体改为系统等宽/Fira Code- 插件瘦体 - charcoal-fire2026-08-17
- charcoal-fire2026-08-17
- charcoal-fire2026-08-17
- charcoal-fire2026-08-17
- charcoal-fire2026-08-17
版本 1.1.2 更新:
- 修复楼层点赞默认透明度与悬停文字对比不足
- 修复“在线安装 / 免费下载”和插件管理操作的低对比文字
- 修复认证激活态、版本下载与历史下载的正常/悬停状态
- 修复回复区 Markdown 工具栏被放大成绿色块状按钮的问题
- 保持回复编辑器文字、光标和选区可读,不恢复全局按钮颜色覆盖
- 已通过 284 项单元测试、SQLite 89 项,并在真实 bbs1org v8.6.5 页面完成桌面、375x812 和 320x700 验证
附件 SHA-256:
fc1989bbce5d02c63ce43e07c1e0436948cf692eb4fd6f2aef51cdb5ecec1fcb - charcoal-fire2026-08-17
优化1.footer尾部没有作用上。2.能否去除字体或加开关不用字体,兼容和性能更好吧。3.性能还有没有优化空间。
仅供参考。点赞与点评1charcoal-fire投币2026-08-17
- charcoal-fire2026-08-17
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题。上传字体经类型、大小、WOFF2 结构、表白名单与可解码性多重校验;配色字段严格白名单/范围/枚举校验后生成 CSS;字体输出带 nosniff、同源限制与 ETag,整体安全实现严谨。
⚡ 性能问题
plugin.php:934与plugin.php:1359在page.head内两次调用appearance_theme_font_record()(plugin.php:339-365),每次重复one(...)查询并对整份 WOFF2 做结构解析,缺请求级缓存。建议为该函数加静态缓存,避免自定义字体用户每页重复读库、重复解析。
🐛 功能/规范缺陷
未发现明显问题。表前缀、外键、跨库迁移、卸载清理均规范。
✅ 修复优先级
- 字体记录请求级缓存(低)。整体质量很高。
- charcoal-fire2026-08-18
版本 1.2.0 更新:
- 新增站长全站默认主题:可在后台开启或关闭,并选择默认明暗模式与 6 套内置配色;个人主题始终优先于全站默认主题。
- 修复 <footer class="footer"> 未应用主题的问题;页脚背景、分隔线、文字和链接会随全部内置主题、用户自定义配色及全站默认主题变化。
- 优化论坛默认浅色主题的帖子链接颜色,由接近正文的 #111827 调整为 #167447。
- 为 appearance_theme_font_record() 增加请求级命中和未命中缓存,避免同一请求重复查库、Base64 解码、哈希校验和 WOFF2 解析;上传替换或删除字体后会自动失效缓存。
三项用户反馈均已在修复前 1.2.0 候选中复现,并在相同 bbs1org v8.6.5 测试站完成修复前后对照。已通过 293 项单元测试、SQLite 89 项,以及桌面、375x812、320x700 真实页面验证。
附件 SHA-256:
821ab2df64d4e1808cb85f8c2a787340f68882fe13d1cc63c423998f18fb11c7
appearance_theme_1.2.0.php1 - charcoal-fire2026-08-18
版本 1.2.0 更新:新增站长全站默认主题,可选择明暗模式与 6 套内置配色,个人主题优先;修复 footer 未应用主题;优化论坛默认浅色帖子链接颜色;为 appearance_theme_font_record() 增加请求级缓存及字体变更后的缓存失效。已通过 293 项单元测试、SQLite 89 项,并在相同 bbs1org v8.6.5 的桌面、375x812 与 320x700 页面完成验证。
- charcoal-fire2026-08-18
版本 1.2.0 更新:
新增站长全站默认主题,可选择默认明暗模式与 6 套内置配色,个人主题优先;修复 footer 未应用主题;优化论坛默认浅色帖子链接颜色;为 appearance_theme_font_record() 增加请求级缓存,并在字体上传、替换或删除后失效缓存。已通过 293 项单元测试、SQLite 89 项及 bbs1org v8.6.5 桌面与移动页面验证。 终于可以后台全局控制了。
上传字体,这个是存到服务器上了吧?有危险- charcoal-fire2026-08-19
- charcoal-fire2026-08-18
版本 1.2.1 更新:
1.2.1 更新:- 全站默认主题改用更直观的分段开关和六套紧凑主题列表。
- 后台加入完整论坛缩略预览,未保存的明暗模式与配色选择会即时更新。
- 新增“以访客身份预览”,可在真实匿名首页查看当前选择,不会保存配置或退出管理员账号。
- 管理员个人主题覆盖全站默认主题时会明确提示。
- 桌面端标题与说明合并为一行,移动端空间不足时自动换行。
- 已在 bbs1org v8.6.5 的桌面、375×812 和 320×700 页面验证,无横向溢出。
🔍 复核报告(v1.2.1,回应此前审查)· @charcoal-fire-007
✅ 已确认修复
- 字体上传安全链路保持完整:扩展名白名单 .woff2 + is_uploaded_file(appearance_theme.php:411-415)、大小 ≤2MiB(416-418)、finfo MIME 拒 HTML/JS/SVG(423-429)、WOFF2 结构+表白名单+拒绝 metadata/private/尾随(223-322)、外部解码器可解码性校验(193-221);输出仍带 nosniff、同源 CORP、sha256 ETag、hash_equals 校验(483-508)。
- 性能问题已修复:新增请求级缓存 appearance_theme_font_record_cache()(339-349)与失效函数,appearance_theme_font_record() 先查缓存(354-355),上传/删除后主动失效(446、468);appearance_theme_user_state() 也有静态缓存(1047)。page.head 内 1579/1586 两次调用现均命中同一缓存,不再重复 one() 查询与 WOFF2 解析。
- 字体存储位置(答用户疑问):上传字体不落盘,以 base64 存于自有表 plugin_appearance_theme_fonts.data_base64(441、587-595),上限 2MiB;经 appearance_theme_font 路由读取时二次全量校验(351-379),无路径穿越面,危险可控。
❌ 未生效 / 新问题
未发现安全类新问题。四项新增功能均安全:
- 全站默认主题:need_admin()+require_post()+form_token()(656-658、712),preset/mode 白名单(663、1192)。
- 访客预览:need_admin()+仅 GET+mode/preset 白名单(730-737),用核心同款 __request_uid/__me_cache 覆盖模拟访客(740-745),无越权/CSRF/XSS/路径穿越。
💡 顺带建议
- 预览/编辑器 CSS 残留硬编码字号(font-size:12px/10px/9px/6px,1727-1759)与少量硬编码颜色(#fff 1832、#22303f 1853、头像渐变 1746、阴影 rgba 1765/1873/1880),建议改用 CSS 变量。
- 访客预览直接改写 $GLOBALS['__request_uid']/['__me_cache']/$_GET/$_COOKIE(740-745)依赖核心私有内部状态,核心将来改 uid()/me() 缓存会静默失效,建议封装或注释说明。
- description(2042)「更原生的颜色」表述略抽象,可改为纯用户视角措辞。
总结:v1.2.1 已修复上轮唯一性能问题,字体上传/存储/输出安全链路完整,四项新功能均无越权/CSRF/XSS/路径穿越,仅剩预览区少量硬编码字号/颜色与预览对核心私有状态的轻微依赖。
- charcoal-fire2026-08-20
版本 1.2.2 更新:
1.2.2 更新:- 优化单文件体积:六套内置配色改由 PHP 统一提供,删除前端重复数据,避免前后台配色漂移。
- 源码从 197077 字节降至 192696 字节,分享正文余量由 2911 字节增加到 7292 字节。
- 加强“以访客身份预览”的宿主兼容检查;无法安全建立匿名请求时会恢复原身份并停止预览。
- 修复本地 PHP 插件市场 CA 证书链配置,并完成真实市场刷新、全新在线安装和升级保持性验证。
- 已通过 347 项单元测试、SQLite 89 项及 bbs1org v8.6.5 桌面、375×812、320×700 页面验证。
你这个插件思路很好,但是呢,你的配色方案得改进,不要出现绿色按钮黑色文字这种低级错误
还有,你的插件把字体改的花里胡哨,还改不了字体,你不如把字体自定义单独出来最后由 nodebuy 编辑于 2026-08-20 14:57点赞与点评1charcoal-fire投币2026-08-21
- charcoal-fire2026-08-21
- charcoal-fire2026-08-21
版本 1.3.0 更新:
1.3.0 更新:- 新增按设备本地时间自动切换浅色/深色,可分别设置浅色和深色开始时间,支持跨午夜。
- 时间编辑器合并为单一“启用定时 / 定时已启用”按钮;修改时间立即更新互补时间段,底部“保存”统一同步账号。
- 手动切换作为当前设备临时覆盖,可跨页面保持,并在下一时间边界自动恢复计划模式。
- 定时设置随账号同步,个人配色和导入/导出继续保持纯配色。
- 普通首页和帖子页无需刷新即可在时间边界切换。
- 优化单文件体积,并加强无效时间、宿主兼容和移动端布局校验。
- 已通过 382 项单元测试、SQLite 92 项、市场安装/升级流程和 bbs1org v8.6.5 桌面、375×812、320×700 真实浏览器验证。
- charcoal-fire2026-08-21
自定义论坛外观:支持浅色/深色、定时切换、6 套内置与个人配色、自定义字体;站长



可设置全站默认主题。 你这个插件不错。个人认为最不好的就是有字体,增加了不必要的性能开支,兼容性,还有其他的。搞简单点不好吗。🤭
- charcoal-fire2026-08-23
这个厉害了啊。
有个问题,后台设置的内容比前台的少。
这个是不是搞返了?🌈- charcoal-fire2026-08-24
- charcoal-fire2026-08-24
版本 1.3.1 更新:
1.3.1 更新:- 普通首页和帖子页仅加载约 7 KB CSS 与 1.7 KB JavaScript;完整编辑器只在个人和后台设置页按需加载。
- 设置页资源改用同源长期缓存,并保留可审阅的前端源码和确定性构建校验。
- Poppins 改为按需下载,未使用时不请求;使用时支持一年 immutable 缓存与 ETag 304。
- 自定义字体普通页面只读取轻量元数据;字体内容仅在真实 200 响应时读取和严格校验,条件请求可在读取 Base64 前直接 304。
- 单文件从 196944 字节降至 142306 字节,官网 CRLF 正文余量提升到约 55.9 KB。
- 已通过 390 项单元测试、SQLite 92 项、发布完整性审计,以及桌面、375×812、320×700 真实浏览器验证。
点赞与点评1bbs1org投币2026-08-24
- charcoal-fire2026-08-26
版本 1.4.0 更新:
1.4.0 更新:- 后台新增完整全站浅色/深色主题编辑器,可分别使用 6 套内置配色、27 项详细设置与全站定时。
- 新增“完整自定义 / 仅内置主题 / 统一全站主题”三档用户权限;切换权限不会删除用户原有主题、个人配色、字体或定时。
- 仅内置主题用户可分别选择浅色和深色配色并保留个人定时;统一全站主题下个人设置只读。
- 访客预览升级为完整未保存草稿预览,不保存配置或退出管理员。
- 加强服务端权限校验,旧页面或伪造请求无法绕过站长刚收紧的策略。
- 已通过 439 项单元测试,SQLite / MySQL 8.4 / PostgreSQL 17 各 104 项;完成公开安装升级、1.3.1/1.2.0 到 1.4.0 候选升级及 bbs1org 真实浏览器回归。
这个不能切换深色,只能是浅色的。
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:外观主题(appearance_theme)v1.4.0
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。




字体可以选择替换