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

+17 -18
View File
@@ -64,7 +64,7 @@
return "";
}
// 会员图标(Zibll zibpay_get_vip_icon:vip_N.svg 或自定义 img_icon)。
// 会员图标:vip_N.svg 或自定义 img_icon。
function vipIcon(levelInfo) {
if (levelInfo && levelInfo.img_icon) {
var img = node("img", "img-icon");
@@ -76,7 +76,7 @@
return node("i", "fa fas fa-gem");
}
// 价格行(Zibll:mark 小号 px12 前缀 + 数字;原价 original-price.relative)。
// 价格行:mark 小号 px12 前缀 + 数字;原价 original-price.relative。
function priceRow(mark, priceLabel, showLabel) {
var row = node("div", "flex abl gap6");
var price = node("div", "product-price c-red");
@@ -120,10 +120,10 @@
input.checked = index === 0;
append(label, input);
// Zibll 套餐卡:zib-widget vip-product relative text-center product-box
// 套餐卡:jio-widget-box vip-product relative text-center product-box
// (右上 tag + 价格行 + 时长 badge,无标题行)。
var product = node("div", "zib-widget vip-product relative text-center product-box");
// 标签颜色取后台「标签颜色」配置,未配置时回退参考主题默认的 jb-yellow。
var product = node("div", "jio-widget-box vip-product relative text-center product-box");
// 标签颜色取后台「标签颜色」配置,未配置时回退默认的 jb-yellow。
if (item.discount_tag) append(product, htmlNode("div", "abs-right vip-tag badg " + (item.tag_class || "jb-yellow"), item.discount_tag));
append(product, priceRow(mark, item.price_label || "", item.show_price_label || ""));
if (item.days_label) append(product, node("div", "muted-2-color c-blue em09 p2-10 badg radius", item.days_label));
@@ -135,11 +135,11 @@
function renderMethods(parent, methods, cardPass, wallet) {
methods = Array.isArray(methods) ? methods : [];
if (!methods.length) return; // 无可用支付方式:由按钮区渲染 Zibll 同款 badg 提示。
if (!methods.length) return; // 无可用支付方式:由按钮区渲染 badg 提示。
wallet = wallet || {};
var defaultMethod = text(methods[0].id || "balance");
// 支付方式选择行(Zibll zibpay_get_initiate_pay_input 同构:
// 支付方式选择行(与余额充值/购买积分弹窗同构:
// .payment-method-radio.hollow-radio + logo 图 + data-for 选中模型;
// 与余额充值/购买积分弹窗完全一致的组件)。
if (methods.length > 1) {
@@ -163,7 +163,7 @@
append(parent, row);
}
// 我的余额盒(Zibll user_balance_box 同构:选中余额渠道时显示)。
// 我的余额盒(选中余额渠道时显示)。
if (methods.some(function (m) { return text(m.id) === "balance"; })) {
var balanceBox = node("div", "mb10 muted-box padding-h10");
balanceBox.setAttribute("data-controller", "payment_method");
@@ -180,7 +180,7 @@
append(parent, balanceBox);
}
// 卡密盒(Zibll password_box 同构:mb10 padding-h10 padding-w6 +
// 卡密盒(mb10 padding-h10 padding-w6 +
// data-controller="payment_method" 契约 + form-control 输入)。
if (cardPass) {
var box = node("div", "mb10 padding-h10 padding-w6");
@@ -372,7 +372,7 @@
modal.setAttribute("data-jio-vip-modal", "");
if (view.version && view.version.catalog) modal.setAttribute("data-jio-vip-version", view.version.catalog);
// 关闭按钮(Zibll 原版内联 SVG close 图标)。
// 关闭按钮(内联 SVG close 图标)。
var close = document.createElement("button");
close.type = "button";
close.className = "close";
@@ -388,7 +388,7 @@
close.appendChild(closeSvg);
append(modal, close);
// 用户信息(Zibll:list-inline user-box)。
// 用户信息(list-inline user-box)。
var userBox = node("ul", "list-inline user-box");
var avatarItem = node("li");
var avatarWrap = node("div", "avatar-img");
@@ -412,7 +412,7 @@
append(userBox, userInfo);
append(modal, userBox);
// 会员缩略卡 tabs(Zibll vip-cardminis:vip-card.vip-cardmini + active-icon 勾)。
// 会员缩略卡 tabs(vip-cardminis:vip-card.vip-cardmini + active-icon 勾)。
var tabs = node("ul", "flex jsb mt10 mb20 vip-cardminis gutters-5");
var content = node("div", "tab-content mt10");
var activeIndex = -1;
@@ -455,7 +455,7 @@
append(tabItem, activeIcon);
append(tabs, tabItem);
// pane(Zibll tab-pane fade active in)。
// pane(tab-pane fade active in)。
var pane = node("div", "tab-pane fade jio-vip-pane" + (active ? " active in" : ""));
pane.id = tabId;
pane.hidden = !active;
@@ -463,7 +463,7 @@
form.setAttribute("onsubmit", "return false;");
var row = node("div", "pay-vip-form-row");
// 左侧会员信息(Zibll zibpay_get_pay_vip_info_box)。
// 会员信息卡(v-info 区块)。
var info = node("div", "text-center pay-vip-info");
var iconbox = node("div", "v-iconbox mb10 flex jc gap10");
var vicon = node("div", "v-icon flex jc");
@@ -487,7 +487,7 @@
renderProducts(products, group.items, wallet.mark);
var points = catalog.points_exchange || {};
if (allowed.points_exchange !== false && points.enabled && Array.isArray(points.packages) && points.packages.length) {
// 参考主题 zibpay_get_pay_uservip_modal 的积分兑换入口:
// 积分兑换入口:
// btn-block but mb10 padding-lg c-green mini-radius + points-color 图标 +
// fa-angle-right;点击开服务端静态兑换弹窗(不再跳转用户中心)。
var pointsLink = node("a", "btn-block but mb10 padding-lg c-green mini-radius");
@@ -508,9 +508,8 @@
var noMethod = methods.length === 0;
var reason = actionReason(reasons[actionName]);
var canPurchase = actionAllowed && !noMethod;
// 按钮字样对齐参考主题:会员弹窗即 zibpay_get_initiate_pay_input(4)
// 默认文案「立即支付」(开通/续费场景一致);无可用支付方式时渲染
// Zibll 同款 badg 提示,而非禁用按钮。
// 按钮字样对齐会员弹窗默认文案「立即支付」(开通/续费场景一致);无可用支付方式时渲染
// badg 提示,而非禁用按钮。
if (noMethod) {
append(products, node("span", "badg px12 c-yellow-2", "暂时无法支付,请与客服联系"));
} else {