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
@@ -1,12 +1,12 @@
|
||||
/**
|
||||
* VIP 后台设置弹窗文案字段契约(对照参考主题 zibll 修正)。
|
||||
* VIP 后台设置弹窗文案字段契约。
|
||||
*
|
||||
* 硬约束:
|
||||
* 1) 弹窗文案字段更名为「会员介绍」(pay_user_vip_desc, input) 与
|
||||
* 「开通会员更多内容」(pay_user_vip_more, textarea rows 4 +
|
||||
* sanitize_type html),并从「会员等级」组移到分区末尾的
|
||||
* 「界面文案」(modal-copy) 独立分组;
|
||||
* 2) 文案默认值对齐 zibll(黄金会员/钻石会员、尊享专属特权、权益四项、
|
||||
* 2) 文案默认值(黄金会员/钻石会员、尊享专属特权、权益四项、
|
||||
* 会员介绍与开通会员更多内容默认值),SPA schema / PHP schema /
|
||||
* PaymentRuntime 回退三处一致——Settings::get_all() 不合并
|
||||
* schema 默认值,运行时回退即实际默认值;
|
||||
@@ -49,7 +49,7 @@ test('弹窗文案字段更名为会员介绍/开通会员更多内容并改为
|
||||
assert.ok(!src.includes('弹窗顶部会员说明') && !src.includes('弹窗底部补充说明 HTML'), `${name} 旧名称应已移除`);
|
||||
assert.ok(src.includes('会员介绍') && src.includes('开通会员更多内容'), `${name} 应含新名称`);
|
||||
}
|
||||
// 会员介绍为单行 input(zibll text「一句话简介」);开通会员更多内容为 rows 4 的 HTML textarea。
|
||||
// 会员介绍为单行 input(「一句话简介」);开通会员更多内容为 rows 4 的 HTML textarea。
|
||||
assert.match(
|
||||
vipSchemaJs,
|
||||
/key: 'pay_user_vip_desc',\s*\n\s*label: '会员介绍',\s*\n\s*type: 'input',\s*\n\s*sanitize_type: 'html',\s*\n\s*default: '开通VIP会员,享受会员专属折扣以及多项特权'/
|
||||
@@ -66,7 +66,7 @@ test('弹窗文案字段更名为会员介绍/开通会员更多内容并改为
|
||||
schemaPhp,
|
||||
/'key' => 'pay_user_vip_more', 'label' => '开通会员更多内容', 'type' => 'textarea', 'sanitize_type' => 'html'[\s\S]*?'rows' => 4/
|
||||
);
|
||||
// 帮助文本对齐 zibll 的 desc。
|
||||
// 帮助文本与字段说明一致。
|
||||
assert.ok(vipSchemaJs.includes('显示在开通界面顶部一句话简介,可以为会员权益简介或者活动介绍'));
|
||||
assert.ok(vipSchemaJs.includes('显示在开通界面底部位置,可以为提醒事项、用户协议等,支持HTML代码'));
|
||||
});
|
||||
@@ -98,7 +98,7 @@ test('两个文案字段位于分区末尾的界面文案分组且不再属于
|
||||
assert.ok(basicPhp.includes("'key' => 'pay_user_vip_1_s'") && basicPhp.includes("'key' => 'pay_user_vip_2_s'"), 'SchemaPayment.php 会员等级组应保留两个等级开关');
|
||||
// 二级会员先于一级会员开启时的危险提示(参考主题同款)。
|
||||
assert.ok(basicJs.includes('vip_level_order_notice') && basicPhp.includes('vip_level_order_notice'));
|
||||
// 依赖:任一等级启用时显示(zibll pay_user_vip_1_s 依赖的双等级适配)。
|
||||
// 依赖:任一等级启用时显示(双等级开关适配)。
|
||||
assert.ok(
|
||||
vipSchemaJs.includes("dependsOn: { any: [{ key: 'pay_user_vip_1_s', value: true }, { key: 'pay_user_vip_2_s', value: true }] }"),
|
||||
'vip.js 应为 any 双等级依赖'
|
||||
@@ -124,7 +124,7 @@ test('续费/升级介绍字段存在且被档位卡消费', () => {
|
||||
assert.match(vipTabPhp, /\$card_action = 'upgrade'/);
|
||||
});
|
||||
|
||||
test('文案默认值三处一致并对齐 zibll', () => {
|
||||
test('文案默认值三处一致', () => {
|
||||
// SPA defaults 块与字段级 default。
|
||||
assert.ok(vipSchemaJs.includes("pay_user_vip_1_name: '黄金会员'"));
|
||||
assert.ok(vipSchemaJs.includes("pay_user_vip_2_name: '钻石会员'"));
|
||||
@@ -192,7 +192,7 @@ test('会员介绍按 post 级 HTML 安全净化并在弹窗与用户中心渲
|
||||
});
|
||||
|
||||
test('开通会员更多内容只在弹窗内渲染,不裸露在用户中心页面', () => {
|
||||
// 参考主题 zibpay_user_page_tab_content_vip 只渲染 pay_user_vip_desc;
|
||||
// 会员页 tab 只渲染 pay_user_vip_desc;
|
||||
// pay_user_vip_more 仅出现在两个弹窗函数(购买/续费弹窗)中。
|
||||
assert.ok(!vipTabPhp.includes("vip_settings['more']"), '用户中心 VIP 页不应渲染 more');
|
||||
assert.ok(!vipTabPhp.includes('muted-box padding-10 mini-radius mt15'), '用户中心 VIP 页不应有 more 提示盒');
|
||||
@@ -218,8 +218,7 @@ test('弹窗内 more 与卡密说明按 HTML 渲染而非纯文本', () => {
|
||||
});
|
||||
|
||||
test('积分兑换说明按 post 级 HTML 放行并原样渲染', () => {
|
||||
// 参考主题该字段 sanitize=false 且弹窗内原样拼接;Jio 对齐为保存/输出
|
||||
// 双端 wp_kses_post + 弹窗 wp_kses_post 渲染。
|
||||
// 积分兑换说明:保存端 wp_kses_post 且弹窗内原样拼接;
|
||||
assert.match(vipSchemaJs, /key: 'pay_vip_points_exchange_desc', label: '兑换说明', type: 'textarea', sanitize_type: 'html'/);
|
||||
assert.match(schemaPhp, /'key' => 'pay_vip_points_exchange_desc', 'label' => '兑换说明', 'type' => 'textarea', 'sanitize_type' => 'html'/);
|
||||
const vipSettings = slice(paymentRuntime, 'public static function get_payment_vip_settings', 'public static function get_payment_revenue_settings');
|
||||
|
||||
Reference in new issue
Block a user