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:
1 parent
42cc64106d
commit
427968a721
188 files changed
+915
-967
No files matched your search
@@ -175,7 +175,7 @@ test('header VIP hover cards match the legacy markup and style contract', () =>
|
||||
assert.match(legacyMainCss, /\.navbar-top \.navbar-right \.sub-menu\s*\{[^}]*right:\s*0;/s)
|
||||
})
|
||||
|
||||
test('user card VIP CTA matches the reference zib_get_header_payvip_icon()', () => {
|
||||
test('user card VIP CTA matches the reference header VIP icon', () => {
|
||||
assert.match(headerUserbox, /'<a class="pay-vip but radius4 payvip-icon btn-block" href="javascript:;">'/)
|
||||
assert.match(headerUserbox, /<svg class="em12 mr6" aria-hidden="true"><use xlink:href="#icon-vip_1"><\/use><\/svg>'/)
|
||||
assert.match(headerUserbox, /esc_html__\('开通会员 尊享会员权益', 'jio'\)/)
|
||||
@@ -190,7 +190,7 @@ test('VIP purchase modal matches legacy desktop-center and mobile-bottom positio
|
||||
|
||||
assert.doesNotMatch(purchaseModal, /mobileBottom:\s*false/)
|
||||
assert.match(modalRuntimeJs, /options\.mobileBottom !== false && isMobile\(\)/)
|
||||
// 壳几何 1:1 对齐 Zibll modal_pay_uservip:桌面 600px(bootstrap3 ≥768px
|
||||
// 壳几何 1:1:桌面 600px(bootstrap3 ≥768px
|
||||
// .modal-dialog)+ max-width calc(100% - 20px)(.modal.flex .modal-dialog);
|
||||
// 高度/滚动 = .modal.flex .modal-content 的 max-height calc(100vh - 20px)
|
||||
// + overflow-y auto(阈值放宽到整屏,正常内容不出现滚动条);
|
||||
@@ -301,13 +301,13 @@ test('header multifunction search keeps focus and submit alignment route-indepen
|
||||
test('user profile and author widgets render the reference user-card contract', () => {
|
||||
assert.match(frontendRenderer, /in_array\(\$definition->slug\(\), \['user_card', 'author_card'\], true\)/)
|
||||
assert.match(frontendRenderer, /self::render_reference_widget\(\$definition, \$instance, \$widget, \$content\)/)
|
||||
assert.match(frontendRenderer, /\$classes = \['zib-widget-wrap', 'jio-'/)
|
||||
assert.match(frontendRenderer, /\$classes = \['jio-widget-box-wrap', 'jio-'/)
|
||||
assert.match(frontendRenderer, /\$classes\[\] = 'jio-user-widget-wrap'/)
|
||||
assert.match(frontendRenderer, /echo '<div class="widget-container"><div>';/)
|
||||
assert.match(frontendRenderer, /\$content_classes = \['widget-content'\]/)
|
||||
// 登录卡片与 reference zib_get_user_card_box 同构:封面、头像框、名字行、统计徽章、简介、按钮。
|
||||
// 登录卡片与参考实现的用户卡同构:封面、头像框、名字行、统计徽章、简介、按钮。
|
||||
assert.match(userRenderer, /<div class="mb20">/)
|
||||
assert.match(userRenderer, /user-card zib-widget widget/)
|
||||
assert.match(userRenderer, /user-card jio-widget-box widget/)
|
||||
assert.match(userRenderer, /user-cover graphic" style="padding-bottom: 50%;"/)
|
||||
assert.match(userRenderer, /avatar-img avatar-lg/)
|
||||
assert.match(userRenderer, /user-name flex jc/)
|
||||
@@ -339,7 +339,7 @@ test('user profile and author widgets render the reference user-card contract',
|
||||
assert.match(userRenderer, /loged_title/)
|
||||
assert.doesNotMatch(userRenderer, /user-card__auth-btns|render_social_buttons\(/)
|
||||
// 后加载的 widget bundle 明确保留单层卡片并让封面贴边。
|
||||
assert.match(widgetCss, /\.user-card\.zib-widget\s*\{[^}]*padding:\s*0;[^}]*overflow:\s*hidden;/s)
|
||||
assert.match(widgetCss, /\.user-card\.jio-widget-box\s*\{[^}]*padding:\s*0;[^}]*overflow:\s*hidden;/s)
|
||||
assert.match(legacyMainCss, /\.user-card\.widget \.user-cover \+ \.card-content\s*\{[^}]*margin-top:\s*-55px;/s)
|
||||
// 参考主题契约:.widget-content 是无样式结构层,小工具卡片自带内边距;
|
||||
// 任何样式层都不得给 .widget-content 加 padding,否则小工具与内容列宽之间出现左右空隙。
|
||||
@@ -426,7 +426,7 @@ test('header user-card membership stays on one row with a date-only expiry', ()
|
||||
// The CTA wrapper is the reference padding wrapper, not a bespoke hook.
|
||||
assert.match(headerUserbox, /'<div class="mt10 em09" style="padding:2px;">'/)
|
||||
assert.doesNotMatch(headerUserbox, /jio-header-payvip/)
|
||||
// Expiry badge follows zib_get_user_vip_exp_date_text(): an expiry that has
|
||||
// Expiry badge follows the reference expiry text: an expiry that has
|
||||
// passed reads 会员已过期, a live one reads the bare date, 永久会员 is reserved
|
||||
// for an explicit permanent membership, and no expiry data renders no badge.
|
||||
assert.match(headerUserbox, /\$expires <= time\(\)/)
|
||||
|
||||
Reference in new issue
Block a user