[开发]新会话 Prompt — 继续 SoSite 二级目录改造

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

本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:暂存20260913/docs/新会话prompt.md。

新会话 Prompt — 继续 SoSite 二级目录改造

背景

SoSite 是一个 PHP 论坛系统,上一会话已完成二级目录支持的核心改造,现在需要继续修改视图文件。

已完成的工作(不要动这些文件)

核心基础设施(7 个文件)

  • config.php — 已加 BASE_PATH 常量
  • app/Core/Router.php — 已路由剥离 BASE_PATH
  • app/Core/Controller.php — 已 redirect() 拼接 BASE_PATH
  • app/Core/TemplateCompiler.php — 已 asset() + url() 方法
  • app/init.php — 已从 settings 表覆盖 BASE_PATH
  • app/Controllers/Admin/SettingsController.php — 已保存 base_path
  • app/Views/admin/settings_basic.php — 已加部署路径输入框

默认主题视图(约 30 个文件,已完成)

layouts/main、admin/_sidebar、home、forum、thread、post、auth(全部)、blog(全部)、search、profile、message(全部)、tags、theme、invite

当前任务:修改 admin 视图文件

文件列表(需要逐个修改)

app/Views/admin/ 下的以下文件已恢复到原始状态,需要逐个将硬编码的 /admin/xxx 链接替换为 $this->url('/admin/xxx'):

  1. index.php — 控制台
  2. categories.php — 版块管理
  3. permissions.php — 版块权限
  4. threads.php — 帖子管理
  5. thread_edit.php — 帖子编辑
  6. tags.php — 标签管理
  7. trashed.php — 回收站
  8. blog_categories.php — 博客分类
  9. blog_manage.php — 博客管理
  10. users.php — 用户列表
  11. user_edit.php — 用户编辑
  12. groups.php — 用户组
  13. levels.php — 等级设置
  14. database.php — 备份优化
  15. maintenance.php — 维护工具
  16. themes.php — 主题管理
  17. plugins.php — 插件管理
  18. plugin-edit.php — 插件编辑
  19. mail_settings.php — 邮件设置
  20. settings.php — 设置(旧版)
  21. settings_display.php — 显示设置
  22. search_settings.php — 搜索设置
  23. verify.php — 二次验证

重要规则(必须遵守)

1. 绝对不要用 search_replace 批量替换

每个文件必须用 edit_file 单独修改。PHP 模板文件中有大量 <?php 和 HTML 混合的代码,批量替换必定破坏嵌套 PHP 结构。

2. 不要用 fix 脚本补救

如果改错了,恢复原始文件重新改,不要写 fix 脚本。

3. 一个文件一个文件来

每个文件用 edit_file 改完后,立即 php -l 验证语法,确认无误再改下一个。

4. 硬编码 URL 替换规则

原始替换为
href="/admin/xxx"href="<?php echo $this->url('/admin/xxx'); ?>"
action="/admin/xxx"action="<?php echo $this->url('/admin/xxx'); ?>"
href="/thread/xxx"href="<?php echo $this->url('/thread/xxx'); ?>"
href="/blog/xxx"href="<?php echo $this->url('/blog/xxx'); ?>"
href="/"href="<?php echo $this->url('/'); ?>"
href="/login"href="<?php echo $this->url('/login'); ?>"
href="/register"href="<?php echo $this->url('/register'); ?>"

5. URL 中包含 PHP 表达式的处理

如果 URL 中包含 PHP 变量,需要将整个表达式拼接到 url() 调用中:

// 正确
href="<?php echo $this->url('/admin/threads?page=' . $i); ?>"

// 错误(会产生嵌套 PHP 标签,导致语法错误)
href="<?php echo $this->url('/admin/threads?page=<?php echo $i; ?>'); ?>"

6. 修改步骤

1. read_file 读取文件
2. 用 edit_file 替换硬编码 URL
3. 用 php -l 验证语法
4. 确认无误后继续下一个文件

7. 改完一步说一步

每次改完一个文件,说一声文件名和改动内容,等用户确认再改下一个。

后续任务(admin 改完后)

  1. 改 morden 主题模板(assets/themes/morden/templates/ 下约 27 个文件)
  2. 改插件(11 个插件)
  3. 改 JS 文件(assets/js/editor.js、assets/js/vote.js)
  4. 测试:BASE_PATH = '' 根目录和 BASE_PATH = '/sosite' 二级目录
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 浏览 3 次 | 回复 0 次

全部回复 (0)

暂无回复

请 登录