本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:暂存20260913/docs/新会话prompt.md。
新会话 Prompt — 继续 SoSite 二级目录改造
背景
SoSite 是一个 PHP 论坛系统,上一会话已完成二级目录支持的核心改造,现在需要继续修改视图文件。
已完成的工作(不要动这些文件)
核心基础设施(7 个文件)
config.php— 已加BASE_PATH常量app/Core/Router.php— 已路由剥离 BASE_PATHapp/Core/Controller.php— 已 redirect() 拼接 BASE_PATHapp/Core/TemplateCompiler.php— 已 asset() + url() 方法app/init.php— 已从 settings 表覆盖 BASE_PATHapp/Controllers/Admin/SettingsController.php— 已保存 base_pathapp/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'):
index.php— 控制台categories.php— 版块管理permissions.php— 版块权限threads.php— 帖子管理thread_edit.php— 帖子编辑tags.php— 标签管理trashed.php— 回收站blog_categories.php— 博客分类blog_manage.php— 博客管理users.php— 用户列表user_edit.php— 用户编辑groups.php— 用户组levels.php— 等级设置database.php— 备份优化maintenance.php— 维护工具themes.php— 主题管理plugins.php— 插件管理plugin-edit.php— 插件编辑mail_settings.php— 邮件设置settings.php— 设置(旧版)settings_display.php— 显示设置search_settings.php— 搜索设置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 改完后)
- 改 morden 主题模板(
assets/themes/morden/templates/下约 27 个文件) - 改插件(11 个插件)
- 改 JS 文件(
assets/js/editor.js、assets/js/vote.js) - 测试:
BASE_PATH = ''根目录和BASE_PATH = '/sosite'二级目录