refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.
Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)
Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
(dropped 3 stale entries, added the 17 missing ones)
Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
when it is empty
Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.
Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5b16bc6e15
commit
35bb96e82f
997 files changed
+28216
-28188
No files matched your search
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* 硬约束:
|
||||
* 1) 会员弹窗加载占位为完整布局仿形骨架(vipSkeleton()),复用全局
|
||||
* aksrt-modal-runtime__skeleton-line/-block 与 shimmer 动画,
|
||||
* jio-modal-runtime__skeleton-line/-block 与 shimmer 动画,
|
||||
* VIP 专属形状样式落在 assets/css/frontend/vip-modal.css;
|
||||
* 2) 弹窗数据缓存 TTL 60s,悬停/聚焦入口按等级意图预热,预热与
|
||||
* openRemote 共用 cacheKey 与 flight;
|
||||
@@ -39,41 +39,41 @@ const scripts = read('src', 'Core', 'ScriptsPart1b.php');
|
||||
|
||||
test('会员弹窗使用完整布局仿形骨架屏', () => {
|
||||
assert.match(vipJs, /function vipSkeleton\(\) \{/);
|
||||
assert.match(vipJs, /node\("div", "aksrt-vip-modal-skeleton"\)/);
|
||||
assert.match(vipJs, /node\("div", "jio-vip-modal-skeleton"\)/);
|
||||
assert.match(vipJs, /skeleton\.setAttribute\("aria-busy", "true"\)/);
|
||||
// 结构:用户框(头像+两行)、等级卡行、双列面板(权益+套餐区)。
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__user/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__avatar/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__lines/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__tabs/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__tab/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__pane/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__info/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__products/);
|
||||
assert.match(vipJs, /aksrt-vip-modal-skeleton__button/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__user/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__avatar/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__lines/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__tabs/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__tab/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__pane/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__info/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__products/);
|
||||
assert.match(vipJs, /jio-vip-modal-skeleton__button/);
|
||||
// 线条/色块复用全局骨架类。
|
||||
assert.match(vipJs, /aksrt-modal-runtime__skeleton-line is-wide/);
|
||||
assert.match(vipJs, /aksrt-modal-runtime__skeleton-line is-short/);
|
||||
assert.match(vipJs, /aksrt-modal-runtime__skeleton-block/);
|
||||
assert.match(vipJs, /jio-modal-runtime__skeleton-line is-wide/);
|
||||
assert.match(vipJs, /jio-modal-runtime__skeleton-line is-short/);
|
||||
assert.match(vipJs, /jio-modal-runtime__skeleton-block/);
|
||||
// openRemote 传入自定义骨架,不再使用纯文本占位。
|
||||
assert.match(vipJs, /skeleton: vipSkeleton\(\),/);
|
||||
assert.doesNotMatch(vipJs, /加载中/);
|
||||
});
|
||||
|
||||
test('骨架样式落在 vip-modal.css 并对齐 640px 双列阈值', () => {
|
||||
assert.match(vipCss, /\.aksrt-vip-modal-skeleton \{/);
|
||||
assert.match(vipCss, /\.aksrt-vip-modal-skeleton__avatar \{[\s\S]*?border-radius: 50%/);
|
||||
assert.match(vipCss, /\.aksrt-vip-modal-skeleton__tab \{[\s\S]*?flex: 1/);
|
||||
assert.match(vipCss, /\.aksrt-vip-modal-skeleton__button \{[\s\S]*?height: 38px/);
|
||||
assert.match(vipCss, /animation: aksrt-modal-skeleton/);
|
||||
assert.match(vipCss, /@media \(min-width: 640px\)[\s\S]*?\.aksrt-vip-modal-skeleton__pane \{[\s\S]*?grid-template-columns: 1fr 1\.2fr/);
|
||||
assert.match(vipCss, /\.jio-vip-modal-skeleton \{/);
|
||||
assert.match(vipCss, /\.jio-vip-modal-skeleton__avatar \{[\s\S]*?border-radius: 50%/);
|
||||
assert.match(vipCss, /\.jio-vip-modal-skeleton__tab \{[\s\S]*?flex: 1/);
|
||||
assert.match(vipCss, /\.jio-vip-modal-skeleton__button \{[\s\S]*?height: 38px/);
|
||||
assert.match(vipCss, /animation: jio-modal-skeleton/);
|
||||
assert.match(vipCss, /@media \(min-width: 640px\)[\s\S]*?\.jio-vip-modal-skeleton__pane \{[\s\S]*?grid-template-columns: 1fr 1\.2fr/);
|
||||
});
|
||||
|
||||
test('弹窗打开提速:缓存 TTL 提升与意图预热', () => {
|
||||
assert.match(vipJs, /cacheTtl: 60000,/);
|
||||
// 预热与 openRemote 同一 cacheKey(method + AksrtRequest.url)。
|
||||
// 预热与 openRemote 同一 cacheKey(method + JioRequest.url)。
|
||||
assert.match(vipJs, /function vipModalCacheKey\(level\) \{/);
|
||||
assert.match(vipJs, /"GET:" \+ window\.AksrtRequest\.url\("\/pay\/vip\/modal", \{ vip_level: level \}\)/);
|
||||
assert.match(vipJs, /"GET:" \+ window\.JioRequest\.url\("\/pay\/vip\/modal", \{ vip_level: level \}\)/);
|
||||
assert.match(vipJs, /cache\.acquire\(vipModalCacheKey\(level\)/);
|
||||
assert.match(vipJs, /ttl: 60000,/);
|
||||
assert.match(vipJs, /tags: \["vip"\]/);
|
||||
@@ -134,7 +134,7 @@ test('header-userbox styles ship once in the shared public bundle', () => {
|
||||
const bundle = read('assets', 'css', 'build', 'public.css');
|
||||
assert.strictEqual((builder.match(/'assets\/css\/frontend\/header-userbox\.css'/g) || []).length, 1);
|
||||
assert.strictEqual((bundle.match(/\/\* source: assets\/css\/frontend\/header-userbox\.css \*\//g) || []).length, 1);
|
||||
assert.match(bundle, /\.aksrt-header-userbox\s*\{/);
|
||||
assert.match(scripts, /wp_enqueue_style\(\s*'aksrt-public',[\s\S]*?\['aksrt-main'\]/);
|
||||
assert.match(bundle, /\.jio-header-userbox\s*\{/);
|
||||
assert.match(scripts, /wp_enqueue_style\(\s*'jio-public',[\s\S]*?\['jio-main'\]/);
|
||||
assert.doesNotMatch(scripts, /\$enqueue_module\('header-userbox'\)/);
|
||||
});
|
||||
Reference in new issue
Block a user