[开发]SoSite 应用面板激活态更新包(2026-08-11)

👑Lv.11 元老 🌞 骨干会员
2026-10-24 00:11:03

本文由 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_generatorBASE_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.php
  • plugins/daily_checkin/hook/nav_plugin_links.php
  • plugins/dice/hook/nav_plugin_links.php
  • plugins/icon_generator/hook/nav_plugin_links.php
  • plugins/quiz_duel/hook/nav_plugin_links.php
  • plugins/red_packet/hook/nav_plugin_links.php

四、本包包含的文件清单(6 个,均为修改)

文件改动
app/Views/_components/left_sidebar.phpnav_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

五、部署步骤(推荐顺序)

  1. 备份(见第三节)
  2. 上传本 update 包全部文件,按路径覆盖
  3. 若插件钩子有缓存,清空 protected/cache/ 下插件缓存(如 plugins_cache.php,钩子文件路径变化时插件管理器会自动重建)
  4. 浏览器回归验证(见下)

六、回归验证清单

页面/场景检查点
/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 端应用面板插件入口激活态)。

轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 瀏覽 4 次 | 回覆 0 次

全部回覆 (0)

暫無回覆

請 登入