本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:8月12日的备份/update/12/README-部署说明.md。
SoSite 应用面板激活态更新包(2026-08-11)
本目录包含 6 个修改 的文件,按原目录结构放置。
覆盖方式:将本目录内所有文件按相同路径上传覆盖到站点根目录(如 D:/phpstudy_pro/WWW 或服务器对应路径)。
生成环境:PHP 8.2 / MySQL 5.7.26。
一、本包功能说明
PC 端"应用"左栏面板链接激活态:此前左栏"应用"面板(_components/left_sidebar.php)通过 nav_plugin_links 钩子输出各插件入口链接,但任何插件页面都不高亮。本包让插件在自己的前台页面时,左栏对应入口显示激活态(mn-cat-active,蓝底+加粗,与论坛/博客分类高亮样式一致)。
实现方式
left_sidebar.php调用钩子时传入当前 URI:Plugin::hook('nav_plugin_links', ['__nav_uri' => $currentUri])- 各插件的
nav_plugin_links.php钩子文件读取$__nav_uri,用路由前缀匹配(strpos($__nav_uri, '/checkin') === 0等)判断激活,命中则输出class="mn-cat-active" - 前缀匹配天然覆盖子路由:
/duel、/duel/create、/redpacket/{id}、/dice/play均命中对应入口
覆盖的插件入口(5 个,均已激活)
| 插件 | 匹配前缀 | 高亮入口 |
|---|---|---|
| daily_checkin | /checkin | 每日签到 |
| dice | /dice | 摇骰子 |
| icon_generator | BASE_PATH . '/icon' | 图标工具 |
| quiz_duel | /duel | 猜题对决 |
| red_packet | /redpacket | 积分红包 |
未激活插件(invite 等)钩子不执行,无需处理;user_profile 的钩子文件为空实现,无影响。
二、兼容性说明
- 移动端"应用"下拉(
layouts/main.php的mn-apps-dropdown)调用同一钩子但不传__nav_uri,钩子内!empty($__nav_uri)判断天然跳过,移动端行为不变(该容器也无激活样式) - 钩子文件仍兼容无视图对象的场景(
$GLOBALS['__view']为空时用 emoji 兜底分支,同样带激活 class) Plugin::hook()内部已有extract($params)机制(Plugin.php L145),__nav_uri变量可直接使用,无需改动 Plugin.php
三、覆盖前必须做的事
备份服务器现状
把服务器上以下文件整体备份一份(zip 即可):
app/Views/_components/left_sidebar.phpplugins/daily_checkin/hook/nav_plugin_links.phpplugins/dice/hook/nav_plugin_links.phpplugins/icon_generator/hook/nav_plugin_links.phpplugins/quiz_duel/hook/nav_plugin_links.phpplugins/red_packet/hook/nav_plugin_links.php
四、本包包含的文件清单(6 个,均为修改)
| 文件 | 改动 |
|---|---|
app/Views/_components/left_sidebar.php | nav_plugin_links 钩子调用传入 ['__nav_uri' => $currentUri] |
plugins/daily_checkin/hook/nav_plugin_links.php | 前缀 /checkin 命中时链接加 mn-cat-active |
plugins/dice/hook/nav_plugin_links.php | 前缀 /dice 命中时链接加 mn-cat-active |
plugins/icon_generator/hook/nav_plugin_links.php | 前缀 BASE_PATH.'/icon' 命中时链接加 mn-cat-active |
plugins/quiz_duel/hook/nav_plugin_links.php | 前缀 /duel 命中时链接加 mn-cat-active |
plugins/red_packet/hook/nav_plugin_links.php | 前缀 /redpacket 命中时链接加 mn-cat-active |
五、部署步骤(推荐顺序)
- 备份(见第三节)
- 上传本 update 包全部文件,按路径覆盖
- 若插件钩子有缓存,清空
protected/cache/下插件缓存(如plugins_cache.php,钩子文件路径变化时插件管理器会自动重建) - 浏览器回归验证(见下)
六、回归验证清单
| 页面/场景 | 检查点 |
|---|---|
/checkin(每日签到) | 左栏"应用"面板"每日签到"高亮 |
/dice、/dice/play | "摇骰子"高亮 |
/icon(图标工具) | "图标工具"高亮 |
/duel、/duel/my | "猜题对决"高亮 |
/redpacket、/redpacket/{id} | "积分红包"高亮 |
/forum、首页、帖子详情页 | 应用面板无任何入口高亮(互不影响) |
| 移动端(≤768px)"应用"下拉 | 无高亮(行为不变) |
七、注意事项
- 高亮样式复用
.mn-cat-list a.mn-cat-active(modern.css),无需新增 CSS - 若后续新增插件接入
nav_plugin_links钩子,需自行实现同样的__nav_uri前缀判断才可获得激活态(约定:!empty($__nav_uri) && strpos($__nav_uri, '<路由前缀>') === 0)
本包由 2026-08-11 会话生成(PC 端应用面板插件入口激活态)。