Files
wordpress-theme-aksrt/.zcode/plans/plan-sess_f2f2d2d9-4d0c-497b-8524-0276e62cbe96.md
T
2026-09-04 18:48:57 +08:00

3.7 KiB

  1. 余额页改为单一路径 DOM 记录切换

    • 以 inc/helpers/user-center-renderers/profile-credits.php 现有 data-aksrt-asset-tab / data-aksrt-asset-pane 结构为唯一 UI 状态源,保持积分记录、余额记录、积分任务都通过按钮事件切换,不再依赖 URL hash 或 query。
    • 在 assets/js/credits.js 扩展现有 initAssetTabs():拦截记录分页链接,阻止整页导航;读取分页链接的页码/资产类型,调用当前已有的 /user-center/panel/credits REST 面板接口,通过响应 HTML 更新 #panel-credits 的 DOM;更新后重新绑定 tab,并清理地址栏中 wallet_page、credits_page、points_page 等历史参数。
    • 将 PHP 记录渲染改为读取由 REST 请求传入的分页参数,而不是直接读取 $_GET;移除 aksrt_render_profile_pagination() 生成的 query 链接,改为输出带 data-aksrt-asset-page、data-aksrt-asset-key 的按钮/链接,供 credits.js 处理。
    • 保留服务端 REST 面板的单一 HTML 输出,不新增 JSON/HTML 双协议;分页请求只使用现有 credits panel endpoint,并在响应后触发既有 post_ajax.ed → auto_fun 生命周期。
    • 用户中心初始化时不再把 reward_tab、commission_page、user_page 等记录参数写回用户地址;对 /user/balance/ 初次加载清理历史记录参数,避免切换后地址继续携带旧参数。
  2. 首页排序固定为 DOM/AJAX,不保留参数刷新分支

    • assets/js/homepage-fixed.js 删除 SORT_QUERY_KEY、getSortFromUrl()、normalizeHomepageUrl()、replaceUrlSort() 及对 window.location.search 的依赖;当前排序只从活动排序控件或 aksrtData.homepageDefaultSort 读取。
    • initSortbar() 点击排序项后只更新 active 状态并调用现有 requestHomepagePanel(),不再调用 history.replaceState(),因此地址栏保持无 home_sort 参数。
    • inc/helpers/aksrt-homepage.php 排序控件改为无参数链接(或按钮化标记,沿用现有 data-sort),删除 add_query_arg('home_sort', ...)、data-sort-ajax 双路开关和服务端 query override;服务端首页排序只使用 canonical 默认/运行时 override,避免生成旧的参数刷新 URL。
    • 清理 src/Core/ScriptsPart1c.php、src/Settings/HomeCms.php、src/Settings/HomepageReader.php 中仅服务于可选排序 AJAX 开关的 homepageSortAjax / homepage_sort_ajax_enabled 死代码及数据注入。
    • 删除首页排序请求中仅为 URL 刷新服务的 page_url 参数,或将其固定为当前无 query 的页面路径;保留 REST 请求内部用于确定上下文的必要字段。
  3. 清理历史 query 分支和测试

    • 通过 rg 找到并删除余额记录的 wallet_page / credits_page 旧 $_GET 分支、首页 home_sort query 读取/写入分支,以及相关旧注释/配置字段。
    • 增加/更新 tests/widget-system 契约:余额记录控件必须是 DOM data 事件、分页不得生成 add_query_arg/query href;首页排序必须调用 requestHomepagePanel 且不得使用 home_sort、replaceState、location.search、data-sort-ajax。
    • 只保留真正需要的 user-center REST 参数(例如 revenue 内部分页若仍有明确业务需求则保留在请求体/URL 内部,不写浏览器地址);不把现有其他用户中心 tab 的必要内部请求参数误删。
  4. 验证

    • 仅使用 rg、Node 契约测试和 PHP 语法检查,不做真实视觉效果验收。
    • 运行余额/用户中心、首页、生命周期、资产账本相关测试;对所有改动 PHP/JS 执行 php -l / node --check。
    • 运行 git diff --check,并确认不覆盖工作树中已有的 VIP、runtime、CSS、imgbox 或计划文件改动。