feat: rewrite schema-driven widget system

This commit is contained in:
kate522 committed 2026-08-17 17:29:54 +08:00
1 parent 6c6c462df8
commit ad99ab53ce
28 files changed
+3489

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
# Plan: AKSRT 小工具系统全量重写
> 用户确认基线:`C:\Users\Xing\Desktop\zibll`
> 目标:37 个现代核心小工具;排除论坛、商城和废弃旧版;无兼容、迁移或双路运行。
## Architectural Decisions
- 使用全新的 `AKSRT\WidgetSystem` 数据驱动内核,不引入 Codestar/CSF。
- 新实例 ID 统一为 `aksrt_widget_<slug>`,不注册或读取现有小工具 ID。
- 开发期新系统在未接入 bootstrap 前保持不可达;最终以单次注册器切换删除旧运行路径。
- 参考“专题”映射为 `category`/`post_tag`;付费类型只使用 AKSRT `DomainModel`。
- 最终树只保留一套小工具 CSS、JS、REST 与挂载区域实现。
## Phase 1 — 参考基线与原生内核
- [x] 冻结参考文件哈希、37 项现代组件清单和明确排除项。
- [x] 实现 `WidgetDefinition`、`WidgetRegistry`、字段 schema、通用字段与递归规范化。
- [x] 实现后台表单渲染、懒加载控制器及独立 admin CSS/JS 基础。
- [x] 增加注册表/字段契约审计并通过 PHP 语法与审计检查。
## Phase 2 — 37 个渲染器与动态数据接口
- [x] 实现 17 个通用/装饰组件。
- [x] 实现 7 个文章/知识付费组件和统一查询、卡片、分页链路。
- [x] 实现 7 个知识产品、2 个幻灯片和 4 个用户组件。
- [x] 实现统一 REST items 路由、一言路由及按需前端资源。
## Phase 3 — 原子切换、挂载区域与导入导出
- [ ] 替换注册器并删除旧小工具类、旧公共层、旧路由和重复资源。
- [ ] 重写 40 个静态挂载区域、动态页面区域及所有模板消费点。
- [ ] 实现 `aksrt.widgets.v1` 导入导出和 5 套知识付费模板。
- [ ] 核对默认 WordPress 小工具注销策略与区块编辑器/自定义器行为。
## Phase 4 — 自动化与视觉终验
- [ ] 完成 schema、查询、可见性、导入导出、REST 与支付适配测试。
- [ ] 生成参考源码黄金 fixture,并完成 1440/1024/390、明暗模式截图矩阵。
- [ ] 验证交互、无障碍、控制台、网络和像素差异阈值。
- [ ] 复跑 WordPress 项目检测、全量 PHP 检查和管理端契约审计。