chore(branding): remove leftover upstream theme identifiers

The theme was renamed Zibll/子比 → AKSRT → Jio, but upstream branding
survived the sweeps in CSS classes, the SVG sprite prefix, a persisted
widget field ID, JS events, admin Vue class names, test infrastructure
and docblocks.

Renames:
- zib-widget / zib-widget-wrap / zib-slider → jio-widget-box /
  jio-widget-box-wrap / jio-slider-box (jio-widget is taken by the modern
  widget shell, jio-box-* by the card primitives)
- zib-partners-scroll + zps-* → jio-partners-scroll + jps-*
- zib-combo-info-card + zci-* → jio-combo-info-card + jci-*
- zibsvg- → jiosvg-, including the exported picker helpers and the
  fa-zibsvg- family-prefix guard
- zibpay_type → pay_type; the dual-read fallback in PostQuery collapses
  to a single key
- [zibajax="submit"] dropped (no PHP emitter); zib_ajax.success →
  jio_ajax.success
- aks-* admin Vue classes → jio-*
- zib_palette() → palette()

User-facing vendor traces are gone: the floating "more" button default no
longer ships a zibll.com link or 子比主题 marketing copy, the notice
widget ships no preset promo entries, and the four 官网教程 links are
removed from the post-list admin schema.

Test infrastructure renamed to neutral names (docker-compose.reference.yml,
Caddyfile, article-baseline.json, modern-widgets-contract.test.cjs) with
their DB/volume/env/slug identifiers following.

Kept intentionally, documented in tests/fixtures/README.md: the golden
fixture reference fingerprint (a SHA-256 record of an external directory,
read by validate-widget-golden / generate-widget-golden-fixture /
audit-widget-system), the doesNotMatch guards that prove the old tokens are
gone, and the reference theme's own meta key in the visual fixtures.

No backward-compat or data migration: saved widget configs holding old
icon keys or the old field ID silently lose them, per the project's
rewrite-over-compatibility rule.

Verified: 132/132 node contract tests, php tests/widget-system/run.php
(146 assertions), audit-admin-contracts, audit-psr4-paths and
validate-widget-golden all green; tracked bundles regenerated and in sync.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Opus 5 committed 2026-11-02 00:06:54 +08:00
1 parent 42cc64106d
commit 427968a721
188 files changed
+915 -967

No files matched your search

@@ -201,12 +201,12 @@ test('governance display state is a single source shared by every prompt surface
})
test('ban prompt surface mirrors the reference theme modals and block page', () => {
// 查看禁封状态弹窗(1:1 zib_get_ban_info_modal:多彩头 + 信息行 + 申诉按钮)。
// 查看禁封状态弹窗:多彩头 + 信息行 + 申诉按钮。
assert.match(userBanHelper, /function jio_get_user_ban_info_modal/)
assert.match(userBanHelper, /jio-user-ban-info-modal/)
assert.match(userBanHelper, /您已解封,请刷新页面/)
assert.match(userBanHelper, /您当前已无法进行申诉/)
// 禁封申诉弹窗(1:1 zib_get_user_ban_appeal_modal:edit-header + 信息框 +
// 禁封申诉弹窗:edit-header + 信息框 +
// 资料项 inputs + 审核中态 + 禁止申诉态;仅本人)。
assert.match(userBanHelper, /function jio_get_user_ban_appeal_modal/)
assert.match(userBanHelper, /jio-user-ban-appeal-modal/)
@@ -236,13 +236,13 @@ test('ban prompt surface mirrors the reference theme modals and block page', ()
// 申诉表单 data[key] 结构与后端兼容。
assert.match(banAppeal, /is_array\(\$_POST\['data'\]\)/)
assert.match(banAppeal, /申诉说明/)
// 禁封记录弹窗 + 记录链接(1:1 zib_get_ban_log_modal / zib_get_user_ban_log_link)。
// 禁封记录弹窗 + 记录链接。
assert.match(userBanHelper, /function jio_get_user_ban_log_modal/)
assert.match(userBanHelper, /function jio_get_user_ban_log_link/)
assert.match(userBanHelper, /data-jio-ban-log=/)
assert.match(userBanHelper, /当前用户已有%d次禁封记录,请谨慎操作/)
assert.match(userBanHelper, /该用户共有%d次禁封记录/)
// 登录后禁封状态页(1:1 zib_user_ban_restrict_login / zib_die_page)。
// 登录后禁封状态页。
assert.match(userBanHelper, /function jio_render_user_ban_block_page/)
assert.match(banBlock, /抱歉,您的账号当前处于禁封状态,暂时无法登录/)
assert.match(banBlock, /退出登录/)
@@ -254,7 +254,7 @@ test('ban prompt surface mirrors the reference theme modals and block page', ()
assert.match(restriction, /add_action\('template_redirect', \[\$this, 'restrict_frontend_access'\], 1\)/)
assert.match(restriction, /public function restrict_frontend_access\(\): void/)
assert.ok(!restriction.includes('enforce_login_ban'), 'login-time ban block must stay removed')
// 评论拒绝态(参考主题 zib_get_user_ban_nocan_info)。
// 评论拒绝态。
assert.match(userBanHelper, /function jio_get_user_ban_nocan_html/)
assert.match(commentsHelper, /jio_get_user_ban_nocan_html/)
assert.match(commentsHelper, /暂时无法发表评论/)
@@ -287,7 +287,7 @@ test('ban prompt surface mirrors the reference theme modals and block page', ()
})
test('report entry hides targets already banned or suspended', () => {
// 参考主题 zib_get_report_link:已封禁/小黑屋用户不展示举报入口(禁言不隐藏)。
// 已封禁/小黑屋用户不展示举报入口(禁言不隐藏)。
assert.match(userBanHelper, /function jio_is_user_ban_restricted/)
assert.match(commentItem, /jio_is_user_ban_restricted\(\$author_id\)/)
assert.match(singleComponents, /jio_is_user_ban_restricted\(\$post_author_id\)/)
@@ -448,7 +448,7 @@ test('comments expose a report entry for other users when reporting is enabled',
assert.doesNotMatch(commentItem, /\$report\s*=\s*jio_get_comment_report_html\(\$comment\)/)
})
test('frontend ban modal mirrors the reference theme zib_get_set_user_ban_modal 1:1', () => {
test('frontend ban modal mirrors the reference ban modal 1:1', () => {
// 禁封方式/禁封时间/预置原因徽章/其它原因/禁封说明/删除全部内容/禁止用户申诉,
// 以及已禁封用户的状态信息与解封留言表单(弹窗经 REST /user-ban/modal 输出)。
for (const label of ['拉入小黑屋', '禁封用户', '禁封方式', '禁封时间', '选择禁封原因', '其它原因', '禁封说明', '删除全部内容', '禁止用户申诉', '请填写禁止申诉说明', '解封用户', '移出小黑屋', '给用户的留言', '开始时间', '结束时间', '原因', '说明', '禁封记录', '确认禁封']) {
@@ -474,7 +474,7 @@ test('frontend ban modal mirrors the reference theme zib_get_set_user_ban_modal
assert.match(userBanHelper, /function jio_get_user_cover_menu_action_html/)
assert.match(userBanHelper, /function jio_get_comment_ban_or_report_item/)
assert.match(userBanHelper, /function jio_get_post_author_ban_item/)
// 权限模型(参考主题 zib_current_user_can('set_user_ban') 语义):
// 权限模型:
// manage_options + 非本人 + 非超级管理员 + 功能开关。
assert.match(userBanHelper, /current_user_can\('manage_options'\)/)
assert.match(userBanHelper, /\$current_id === \$user_id/)
@@ -483,7 +483,7 @@ test('frontend ban modal mirrors the reference theme zib_get_set_user_ban_modal
// REST 路由:modal 拉取 + set 提交(permission_callback 校验)。
assert.match(userController, /'\/user-ban\/modal'/)
assert.match(userController, /'\/user-ban\/set'/)
// 解封视图多彩横幅(参考主题 zib_get_modal_colorful_header('c-yellow', ...))。
// 解封视图多彩横幅。
assert.match(userBanHelper, /modal-colorful-header colorful-bg c-yellow/)
// 提交后整页刷新(禁封 reload:true)/ 仅关闭弹窗(解封 hide_modal:true)。
assert.match(userBanJs, /window\.location\.reload\(\)/)