From 35bb96e82f0debc09d079c5fd5a1666724fc8793 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 1 Nov 2026 20:05:04 +0800 Subject: [PATCH] refactor: rename the theme brand and every identifier from AKSRT to Jio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .gitignore | 2 +- 404.php | 30 +- README.md | 56 +- archive-resources.php | 52 +- archive.php | 38 +- assets/admin/extract-naive-styles.mjs | 12 +- assets/admin/index.html | 4 +- assets/admin/package-lock.json | 4 +- assets/admin/package.json | 2 +- assets/admin/src/App.vue | 90 +- assets/admin/src/api/index.js | 34 +- assets/admin/src/api/modules/tickets.js | 10 +- assets/admin/src/components/DeferredPage.vue | 64 +- assets/admin/src/components/EmptyState.vue | 22 +- assets/admin/src/components/MobileTopBar.vue | 32 +- assets/admin/src/components/PageHeader.vue | 34 +- .../floating/FloatBtnCommonFields.vue | 8 +- .../components/floating/FloatBtnItemPanel.vue | 30 +- .../floating/FloatMoreButtonsEditor.vue | 2 +- .../components/floating/floating-defaults.js | 2 +- .../src/components/form/FaIconPicker.vue | 108 +- .../admin/src/components/form/IconValue.vue | 10 +- .../{AksCodeEditor.vue => JioCodeEditor.vue} | 0 ...{AksColorPicker.vue => JioColorPicker.vue} | 2 +- ...mpositeField.vue => JioCompositeField.vue} | 18 +- .../form/{AksField.vue => JioField.vue} | 274 ++-- .../{AksFieldGroup.vue => JioFieldGroup.vue} | 86 +- ...ksFormRenderer.vue => JioFormRenderer.vue} | 78 +- ...ksGalleryField.vue => JioGalleryField.vue} | 46 +- ...electField.vue => JioImageSelectField.vue} | 54 +- .../{AksMediaField.vue => JioMediaField.vue} | 54 +- ...ListModal.vue => JioRepeaterListModal.vue} | 46 +- .../form/{AksSaveBar.vue => JioSaveBar.vue} | 32 +- ...{AksSecretClear.vue => JioSecretClear.vue} | 10 +- ...SelectedOrder.vue => JioSelectedOrder.vue} | 16 +- .../{AksSortHandle.vue => JioSortHandle.vue} | 2 +- ...{AksSorterField.vue => JioSorterField.vue} | 48 +- .../src/components/form/sortable-options.js | 10 +- .../components/form/useFieldRemoteOptions.js | 8 +- assets/admin/src/main.js | 22 +- assets/admin/src/pages/CmsCredits.vue | 44 +- assets/admin/src/pages/SchemaPage.vue | 30 +- .../pages/content/FloatingButtonsSettings.vue | 16 +- .../pages/content/FooterTabbarSettings.vue | 74 +- .../content/NotificationCenterSettings.vue | 10 +- assets/admin/src/pages/docs/DocsPage.vue | 84 +- .../extensions/ExtensionsSectionPage.vue | 4 +- .../permissions/PermissionsCapabilities.vue | 36 +- .../pages/placeholder/NativeOpsRedirect.vue | 2 +- .../pages/theme/ThemeAuthorizationPage.vue | 8 +- .../admin/src/pages/theme/ThemeInfoPage.vue | 54 +- assets/admin/src/pages/tools/ToolsBackup.vue | 26 +- assets/admin/src/pages/tools/ToolsHealth.vue | 10 +- .../src/pages/tools/ToolsImportExport.vue | 24 +- assets/admin/src/pages/tools/ToolsUpdate.vue | 36 +- assets/admin/src/pages/users/UsersBadge.vue | 24 +- assets/admin/src/pages/users/UsersLevel.vue | 24 +- assets/admin/src/pages/users/UsersTicket.vue | 10 +- assets/admin/src/pages/users/UsersVerify.vue | 6 +- .../src/pages/users/UsersWechatTemplate.vue | 98 +- .../partials/badge/MedalCategoryCard.vue | 30 +- .../users/partials/badge/MedalIconPicker.vue | 16 +- .../users/partials/badge/MedalItemCard.vue | 26 +- .../partials/ticket/TicketPrereplyPanel.vue | 26 +- .../partials/ticket/TicketStatusPanel.vue | 116 +- .../users/partials/ticket/TicketTypePanel.vue | 4 +- assets/admin/src/router/index.js | 8 +- assets/admin/src/schema/index.js | 2 +- .../src/schema/sections/global/common.js | 4 +- .../admin/src/schema/sections/global/i18n.js | 2 +- .../src/schema/sections/global/search.js | 6 +- .../admin/src/schema/sections/global/share.js | 4 +- .../src/schema/sections/payment/gateway.js | 8 +- .../src/schema/sections/payment/knowledge.js | 2 +- .../admin/src/schema/sections/payment/vip.js | 2 +- .../src/schema/sections/permissions/index.js | 2 +- .../src/schema/sections/post-list/comment.js | 2 +- .../src/schema/sections/post-list/feature.js | 4 +- .../src/schema/sections/post-list/filter.js | 2 +- .../src/schema/sections/post-list/page.js | 2 +- .../src/schema/sections/post-list/submit.js | 4 +- .../src/schema/sections/post-list/thumb.js | 4 +- .../schema/sections/tools/import-export.js | 2 +- .../admin/src/schema/sections/users/auth.js | 2 +- .../admin/src/schema/sections/users/badge.js | 2 +- .../src/schema/sections/users/credits.js | 2 +- .../src/schema/sections/users/features.js | 4 +- assets/admin/src/style.css | 282 ++-- assets/admin/src/styles/sortable-list.css | 130 +- assets/admin/src/utils/color.js | 2 +- assets/admin/src/utils/icons.js | 2 +- assets/css/admin-icon-picker.css | 58 +- assets/css/admin-main.css | 14 +- assets/css/admin-main.min.css | 2 +- assets/css/admin/admin-panel.css | 34 +- assets/css/admin/coupons.css | 88 +- assets/css/admin/income.css | 78 +- assets/css/admin/invite-codes.css | 206 +-- assets/css/admin/messages.css | 180 +- assets/css/admin/native-ui.css | 410 ++--- assets/css/admin/orders.css | 136 +- assets/css/admin/pay-meta-box.css | 128 +- assets/css/admin/pay-overview.css | 212 +-- assets/css/admin/pay-products.css | 140 +- assets/css/admin/post-extension.css | 64 +- assets/css/admin/tickets.css | 306 ++-- assets/css/admin/user-auth.css | 164 +- assets/css/admin/user-ban.css | 198 +-- assets/css/admin/user-level.css | 12 +- assets/css/admin/vip.css | 134 +- assets/css/admin/withdrawals.css | 130 +- assets/css/build/comments.css | 12 +- assets/css/build/comments.min.css | 2 +- assets/css/build/homepage.css | 14 +- assets/css/build/homepage.min.css | 2 +- assets/css/build/public.css | 1454 ++++++++--------- assets/css/build/public.min.css | 2 +- assets/css/build/single.css | 2 +- assets/css/build/single.min.css | 2 +- assets/css/core/alerts.css | 2 +- assets/css/core/animations.css | 204 +-- assets/css/core/buttons.css | 4 +- assets/css/core/color-utilities.css | 290 ++-- assets/css/core/components-ext.css | 180 +- assets/css/core/forms.css | 2 +- assets/css/core/reset.css | 2 +- assets/css/core/tokens.css | 118 +- assets/css/core/typography.css | 2 +- assets/css/editor-style.css | 14 +- assets/css/editor-style.min.css | 2 +- assets/css/frontend/base.css | 30 +- assets/css/frontend/card-primitives.css | 66 +- assets/css/frontend/cms-download.css | 234 +-- assets/css/frontend/comment-tools.css | 40 +- assets/css/frontend/comments/layout.css | 2 +- assets/css/frontend/comments/mobile-item.css | 2 +- assets/css/frontend/comments/shell.css | 8 +- assets/css/frontend/credits.css | 22 +- assets/css/frontend/empty-state.css | 2 +- .../enhancements/components/custom-amount.css | 96 +- assets/css/frontend/enhancements/core-ui.css | 54 +- assets/css/frontend/footer/part.css | 10 +- assets/css/frontend/header-userbox.css | 16 +- assets/css/frontend/homepage-fixed/base.css | 10 +- assets/css/frontend/layout.css | 28 +- assets/css/frontend/medal.css | 74 +- assets/css/frontend/messages.css | 2 +- assets/css/frontend/modal-runtime.css | 204 +-- assets/css/frontend/notyf.css | 2 +- assets/css/frontend/overlay-primitives.css | 8 +- assets/css/frontend/pages/empty-state.css | 44 +- assets/css/frontend/pages/submit.css | 144 +- assets/css/frontend/pagination.css | 36 +- assets/css/frontend/post-card.css | 4 +- assets/css/frontend/print.css | 14 +- assets/css/frontend/report.css | 134 +- assets/css/frontend/resource-archive.css | 140 +- assets/css/frontend/single-post/cover.css | 38 +- .../frontend/single-post/hidden-content.css | 46 +- assets/css/frontend/single-post/rewards.css | 60 +- assets/css/frontend/single-post/shell.css | 2 +- assets/css/frontend/site-notice.css | 56 +- assets/css/frontend/vip-modal.css | 58 +- assets/css/gutenberg-blocks.css | 138 +- assets/css/main.css | 116 +- assets/css/main.min.css | 2 +- assets/css/routes/archives.css | 2 +- assets/css/routes/categories.css | 48 +- .../docs/toolbar-search-enhancements.css | 56 +- assets/css/routes/friends.css | 4 +- assets/css/routes/links.css | 14 +- assets/css/routes/orders.css | 228 +-- assets/css/routes/posts-navs.css | 4 +- assets/css/routes/profile/layout.css | 64 +- assets/css/routes/sign.css | 4 +- assets/css/routes/tickets-compose.css | 184 +-- assets/css/routes/tickets.css | 284 ++-- assets/css/routes/user-center/credits.css | 20 +- assets/css/routes/user-center/level.css | 158 +- assets/css/routes/user-center/responsive.css | 102 +- assets/css/routes/user-center/settings.css | 252 +-- assets/css/routes/user-center/shell.css | 64 +- assets/css/routes/user-home.css | 222 +-- assets/css/shared/captcha.css | 28 +- assets/icons/default-logo.svg | 2 +- assets/img/placeholder.svg | 2 +- assets/js/admin-ai-seo.js | 30 +- assets/js/admin-coupons.js | 20 +- assets/js/admin-icon-picker.js | 82 +- assets/js/admin-income.js | 14 +- assets/js/admin-invite-codes.js | 36 +- assets/js/admin-messages.js | 60 +- assets/js/admin-nav-menu-senior.js | 72 +- assets/js/admin-orders.js | 4 +- assets/js/admin-pay-meta-box.js | 14 +- assets/js/admin-pay-overview.js | 40 +- assets/js/admin-pay-products.js | 34 +- assets/js/admin-post-extension.js | 8 +- assets/js/admin-post-list.js | 10 +- assets/js/admin-tickets.js | 96 +- assets/js/admin-user-auth.js | 44 +- assets/js/admin-user-ban.js | 22 +- assets/js/admin-vip.js | 38 +- assets/js/admin-withdrawals.js | 22 +- assets/js/auth.js | 52 +- assets/js/author.js | 78 +- assets/js/captcha-front.js | 62 +- assets/js/cms-download.js | 198 +-- assets/js/color-extract.js | 30 +- assets/js/comment-ajax.js | 16 +- assets/js/comment-tools.js | 4 +- assets/js/content-protect.js | 10 +- assets/js/core/ajax-debug.js | 22 +- assets/js/core/ajax-list.js | 44 +- assets/js/core/article.js | 32 +- assets/js/core/comment-fixed-input.js | 4 +- assets/js/core/comment-move-form.js | 18 +- assets/js/core/comments.js | 56 +- assets/js/core/footer-tabbar.js | 10 +- assets/js/core/misc.js | 32 +- assets/js/core/modal-cache.js | 10 +- assets/js/core/modal-runtime.js | 98 +- assets/js/core/modal-state.js | 4 +- assets/js/core/modal-telemetry.js | 8 +- assets/js/core/modal-triggers.js | 36 +- assets/js/core/pagination.js | 40 +- assets/js/core/request.js | 10 +- assets/js/core/theme.js | 26 +- assets/js/core/wait-pay-float.js | 10 +- assets/js/credits-affiliate.js | 20 +- assets/js/credits-withdraw-history.js | 30 +- assets/js/credits.js | 246 +-- assets/js/docs-navigation.js | 36 +- assets/js/download-status.js | 14 +- assets/js/effects.js | 20 +- assets/js/enhancements.js | 20 +- assets/js/enhancements2.js | 62 +- assets/js/follow.js | 20 +- assets/js/front-page-admin-set.js | 4 +- assets/js/front-submit-editor.js | 118 +- assets/js/front-submit-pay-download.js | 30 +- assets/js/front-submit.js | 60 +- assets/js/gutenberg-blocks.js | 158 +- assets/js/input-expand.js | 42 +- assets/js/instant-page.js | 4 +- assets/js/messages.js | 22 +- assets/js/notyf.js | 2 +- assets/js/order-center.js | 228 +-- assets/js/page-edit.js | 28 +- assets/js/page-navs.js | 96 +- assets/js/page-template.js | 14 +- assets/js/pay-cashier.js | 30 +- assets/js/pay-vip.js | 158 +- assets/js/poster-share.js | 10 +- assets/js/posts-navs-page.js | 16 +- assets/js/precode.js | 38 +- assets/js/report.js | 130 +- assets/js/reward.js | 82 +- assets/js/routes/user-center-auth.js | 20 +- assets/js/routes/user-center.js | 272 +-- assets/js/runtime/admin-main.js | 118 +- assets/js/runtime/admin-main.min.js | 2 +- assets/js/runtime/imgbox.js | 12 +- assets/js/runtime/imgbox.min.js | 2 +- assets/js/runtime/loader.js | 2 +- assets/js/runtime/main.js | 92 +- assets/js/runtime/main.min.js | 2 +- assets/js/runtime/svg-icon.js | 236 +-- assets/js/section-navs.js | 8 +- assets/js/signin.js | 40 +- assets/js/site-notice.js | 12 +- assets/js/ticket-center-core.js | 84 +- assets/js/ticket-center.js | 278 ++-- assets/js/user-badge-actions.js | 20 +- assets/js/user-ban.js | 132 +- assets/js/video-player.js | 76 +- assets/js/vip-purchase-coordinator.js | 18 +- assets/js/yiyan.js | 12 +- assets/widgets/admin-core.js | 2 +- assets/widgets/admin-transfer.js | 168 +- assets/widgets/admin.css | 298 ++-- assets/widgets/admin.js | 116 +- assets/widgets/frontend.css | 188 +-- assets/widgets/frontend.js | 40 +- assets/widgets/third-party/THIRD_PARTY.md | 2 +- author.php | 8 +- category.php | 40 +- comments.php | 8 +- composer.json | 6 +- footer.php | 70 +- front-page.php | 4 +- functions.php | 420 ++--- go.php | 30 +- header.php | 66 +- home.php | 4 +- image.php | 2 +- inc/bootstrap.php | 148 +- inc/core-hooks.php | 196 +-- inc/helpers/aksrt-credits.php | 38 - inc/helpers/aksrt-domain-model.php | 8 - inc/helpers/aksrt-icon-picker.php | 135 -- inc/helpers/aksrt-rewards.php | 194 --- inc/helpers/aksrt-share.php | 262 --- inc/helpers/aksrt-shortcodes.php | 8 - inc/helpers/comments/actions.php | 62 +- inc/helpers/comments/content.php | 10 +- inc/helpers/comments/form-parts.php | 52 +- inc/helpers/comments/geo.php | 72 +- inc/helpers/comments/icons.php | 8 +- inc/helpers/comments/item.php | 140 +- .../header/aksrt-header-menu-search.php | 117 -- inc/helpers/header/jio-header-menu-search.php | 117 ++ ...eader-mobile.php => jio-header-mobile.php} | 36 +- ...eader-navbar.php => jio-header-navbar.php} | 156 +- ...eader-render.php => jio-header-render.php} | 96 +- inc/helpers/homepage/content.php | 88 +- inc/helpers/homepage/header-components.php | 122 +- inc/helpers/homepage/layout.php | 80 +- ...{aksrt-ajax-list.php => jio-ajax-list.php} | 44 +- ...ve-filters.php => jio-archive-filters.php} | 62 +- .../{aksrt-archive.php => jio-archive.php} | 62 +- .../{aksrt-auth-ui.php => jio-auth-ui.php} | 24 +- .../{aksrt-avatar.php => jio-avatar.php} | 122 +- .../{aksrt-comments.php => jio-comments.php} | 254 +-- ...-coupon-order.php => jio-coupon-order.php} | 24 +- inc/helpers/jio-credits.php | 38 + inc/helpers/jio-domain-model.php | 8 + ...loat-buttons.php => jio-float-buttons.php} | 84 +- inc/helpers/{aksrt-flow.php => jio-flow.php} | 10 +- ...rontend-tags.php => jio-frontend-tags.php} | 202 +-- ...-graphic-card.php => jio-graphic-card.php} | 44 +- ...uttons.php => jio-header-menu-buttons.php} | 48 +- ...der-userbox.php => jio-header-userbox.php} | 138 +- .../{aksrt-homepage.php => jio-homepage.php} | 108 +- ...rt-i18n-header.php => jio-i18n-header.php} | 10 +- ...ksrt-icon-cards.php => jio-icon-cards.php} | 74 +- inc/helpers/jio-icon-picker.php | 135 ++ .../{aksrt-icons.php => jio-icons.php} | 90 +- .../{aksrt-identity.php => jio-identity.php} | 216 +-- .../{aksrt-ip-geo.php => jio-ip-geo.php} | 136 +- .../{aksrt-links.php => jio-links.php} | 126 +- inc/helpers/{aksrt-null.php => jio-null.php} | 26 +- ...age-template.php => jio-page-template.php} | 6 +- inc/helpers/{aksrt-pay.php => jio-pay.php} | 910 +++++------ .../{aksrt-phone.php => jio-phone.php} | 8 +- ...ts-renderer.php => jio-posts-renderer.php} | 2 +- .../{aksrt-resource.php => jio-resource.php} | 202 +-- inc/helpers/jio-rewards.php | 194 +++ inc/helpers/jio-share.php | 262 +++ inc/helpers/jio-shortcodes.php | 8 + ...-single-aside.php => jio-single-aside.php} | 8 +- ...mponents.php => jio-single-components.php} | 198 +-- ...ingle-render.php => jio-single-render.php} | 182 +-- .../{aksrt-single.php => jio-single.php} | 90 +- .../{aksrt-slider.php => jio-slider.php} | 30 +- ...emplate-tags.php => jio-template-tags.php} | 2 +- ...-transactions.php => jio-transactions.php} | 14 +- ...{aksrt-user-card.php => jio-user-card.php} | 20 +- ...rt-user-center.php => jio-user-center.php} | 268 +-- ...r-dashboard.php => jio-user-dashboard.php} | 34 +- ...{aksrt-user-home.php => jio-user-home.php} | 62 +- inc/helpers/{aksrt-vip.php => jio-vip.php} | 222 +-- ...t-pay-float.php => jio-wait-pay-float.php} | 46 +- ...gets-markup.php => jio-widgets-markup.php} | 102 +- .../{aksrt-yiyan.php => jio-yiyan.php} | 34 +- inc/helpers/menu-decoration.php | 22 +- inc/helpers/message-placeholder.php | 6 +- inc/helpers/posts-renderer/config.php | 102 +- inc/helpers/posts-renderer/markup.php | 80 +- inc/helpers/posts-renderer/post-data.php | 128 +- ...ksrt-search-box.php => jio-search-box.php} | 118 +- ...-search-posts.php => jio-search-posts.php} | 20 +- inc/helpers/template-tags/media-brand.php | 76 +- .../template-tags/pagination-permissions.php | 142 +- inc/helpers/template-tags/search-meta.php | 240 +-- inc/helpers/template-tags/site-layout.php | 84 +- inc/helpers/user-ban.php | 398 ++--- .../affiliate-poster-modal.php | 14 +- .../user-center-renderers/credits-balance.php | 76 +- .../credits-points-tasks.php | 62 +- .../credits-transactions.php | 14 +- .../credits-wallet-ledger.php | 18 +- .../user-center-renderers/credits-wallet.php | 94 +- .../user-center-renderers/posts-list.php | 34 +- .../posts-status-filter.php | 16 +- .../user-center-renderers/profile-auth.php | 54 +- .../profile-comments.php | 12 +- .../user-center-renderers/profile-creator.php | 62 +- .../user-center-renderers/profile-credits.php | 24 +- .../profile-favorites.php | 24 +- .../user-center-renderers/profile-follow.php | 28 +- .../user-center-renderers/profile-form.php | 46 +- .../user-center-renderers/profile-header.php | 54 +- .../user-center-renderers/profile-level.php | 104 +- .../user-center-renderers/profile-msg.php | 30 +- .../user-center-renderers/profile-orders.php | 102 +- .../user-center-renderers/profile-posts.php | 12 +- .../user-center-renderers/profile-revenue.php | 126 +- .../profile-settings.php | 2 +- .../user-center-renderers/profile-sidebar.php | 6 +- .../user-center-renderers/profile-tickets.php | 78 +- .../user-center-renderers/profile-vip.php | 2 +- .../settings-account.php | 162 +- .../settings-bindings.php | 38 +- .../settings-runtime-fields.php | 14 +- .../sidebar-commerce.php | 20 +- .../user-center-renderers/sidebar-creator.php | 52 +- .../user-center-renderers/sidebar-nav.php | 36 +- .../user-center-renderers/sidebar-stats.php | 22 +- .../user-center-renderers/sidebar-vip.php | 18 +- .../user-center-renderers/transfer-modal.php | 48 +- inc/helpers/user-center-renderers/vip-tab.php | 66 +- .../user-center-renderers/withdraw-modal.php | 36 +- ...ksrt-ajax-debug.php => jio-ajax-debug.php} | 30 +- inc/modules/captcha.php | 432 ++--- inc/modules/creator-revenue.php | 4 +- inc/modules/message-center.php | 144 +- inc/modules/user-hub.php | 4 +- inc/modules/user-notifications.php | 238 +-- inc/modules/user-parts/account-ajax.php | 230 +-- inc/modules/user-parts/routing.php | 114 +- inc/modules/user-parts/template-registry.php | 104 +- inc/modules/user-parts/urls.php | 106 +- index.php | 16 +- page.php | 12 +- search.php | 56 +- sidebar.php | 10 +- single.php | 20 +- src/Admin/AIController.php | 52 +- src/Admin/Admin.php | 76 +- src/Admin/CommentController.php | 4 +- src/Admin/ControllerBase.php | 14 +- src/Admin/ExtensionController.php | 108 +- src/Admin/GlobalController.php | 62 +- src/Admin/GlobalControllerPart1.php | 28 +- src/Admin/GlobalControllerPart2.php | 32 +- src/Admin/ImportExportController.php | 66 +- src/Admin/ImportExportControllerPart1.php | 34 +- src/Admin/ImportExportControllerPart2.php | 24 +- src/Admin/MessageController.php | 20 +- src/Admin/Native/AdminListPagination.php | 16 +- src/Admin/Native/NativeUi.php | 98 +- src/Admin/Native/PayChargeCards.php | 106 +- src/Admin/Native/PayChargeCardsAssets.php | 32 +- src/Admin/Native/PayChargeCardsForms.php | 182 +-- src/Admin/Native/PayChargeCardsList.php | 84 +- src/Admin/Native/PayCoupons.php | 188 +-- src/Admin/Native/PayCouponsForms.php | 126 +- src/Admin/Native/PayIncome.php | 88 +- src/Admin/Native/PayIncomeList.php | 200 +-- src/Admin/Native/PayMenus.php | 86 +- src/Admin/Native/PayOrders.php | 152 +- src/Admin/Native/PayOrdersDetail.php | 118 +- src/Admin/Native/PayOrdersList.php | 132 +- src/Admin/Native/PayOverview.php | 236 +-- src/Admin/Native/PayProducts.php | 48 +- src/Admin/Native/PayProductsEditor.php | 152 +- src/Admin/Native/PayProductsList.php | 100 +- src/Admin/Native/PayWithdrawals.php | 86 +- src/Admin/Native/PayWithdrawalsList.php | 196 +-- src/Admin/Native/PostListEditFields.php | 96 +- src/Admin/Native/PostListEnhance.php | 186 +-- src/Admin/Native/UsersMenus.php | 148 +- src/Admin/Native/UsersMenusBan.php | 102 +- src/Admin/Native/UsersMenusBanActions.php | 98 +- src/Admin/Native/UsersMenusBanDialogs.php | 110 +- src/Admin/Native/UsersMenusBanQuery.php | 26 +- src/Admin/Native/UsersMenusInviteCode.php | 118 +- src/Admin/Native/UsersMenusInviteForms.php | 98 +- src/Admin/Native/UsersMenusMessages.php | 94 +- .../Native/UsersMenusMessagesCompose.php | 108 +- src/Admin/Native/UsersMenusMessagesList.php | 134 +- src/Admin/Native/UsersMenusTicketsCenter.php | 54 +- src/Admin/Native/UsersMenusTicketsCreate.php | 44 +- src/Admin/Native/UsersMenusTicketsDetail.php | 166 +- src/Admin/Native/UsersMenusTicketsList.php | 86 +- src/Admin/Native/UsersMenusVerify.php | 108 +- src/Admin/Native/UsersMenusVerifyDialogs.php | 110 +- src/Admin/Native/UsersMenusVip.php | 70 +- src/Admin/Native/UsersMenusVipView.php | 226 +-- src/Admin/NavMenuOptions.php | 94 +- src/Admin/PageConfigMetaBox.php | 70 +- src/Admin/PageDisplayController.php | 4 +- src/Admin/PayOverviewController.php | 22 +- src/Admin/PaymentController.php | 4 +- src/Admin/PermissionsController.php | 52 +- src/Admin/PostListController.php | 4 +- src/Admin/Schema/GlobalSchema.php | 32 +- .../Schema/PostList/SchemaPostListList.php | 6 +- src/Admin/Schema/SchemaExtensions.php | 4 +- src/Admin/Schema/SchemaExtensionsAudit.php | 6 +- src/Admin/Schema/SchemaExtensionsIP.php | 6 +- src/Admin/Schema/SchemaExtensionsPush.php | 6 +- src/Admin/Schema/SchemaExtensionsSecurity.php | 6 +- src/Admin/Schema/SchemaExtensionsSystem.php | 6 +- src/Admin/Schema/SchemaPageDisplay.php | 14 +- src/Admin/Schema/SchemaPayment.php | 26 +- src/Admin/Schema/SchemaPermissions.php | 22 +- src/Admin/Schema/SchemaPostList.php | 18 +- src/Admin/Schema/SchemaTools.php | 4 +- src/Admin/Schema/SchemaToolsBackup.php | 6 +- src/Admin/Schema/SchemaToolsHealth.php | 6 +- src/Admin/Schema/SchemaToolsImportExport.php | 8 +- src/Admin/Schema/SchemaUsers.php | 26 +- src/Admin/Schema/Users/SchemaUsersTicket.php | 6 +- src/Admin/SchemaProvider.php | 118 +- src/Admin/SchemaProviderOAuthValidation.php | 26 +- src/Admin/SchemaProviderOptionMatch.php | 4 +- src/Admin/ToolsController.php | 28 +- src/Admin/UserController.php | 148 +- .../UserControllerAuthPhoneOperations.php | 368 ++--- src/Admin/UserControllerFollowOperations.php | 24 +- .../UserControllerProfileMediaOperations.php | 68 +- src/Admin/UserControllerReportOperations.php | 102 +- .../UserControllerRestrictionOperations.php | 88 +- src/Ai/AI.php | 14 +- src/Ai/AIPrompt.php | 8 +- src/Ai/AISEO.php | 30 +- src/Attachment/PendingUploads.php | 12 +- src/Attachment/UploadLimits.php | 56 +- src/Auth/CLoginClient.php | 16 +- src/Auth/Moderation.php | 60 +- src/Auth/ModerationPart1.php | 36 +- src/Auth/ModerationPart2.php | 20 +- src/Auth/OAuth.php | 84 +- src/Auth/OAuthAccountService.php | 42 +- src/Auth/OAuthProviderBroker.php | 18 +- src/Auth/OAuthProviderCatalog.php | 10 +- src/Auth/OAuthProxyClient.php | 24 +- src/Auth/OAuthProxyProtocol.php | 6 +- src/Auth/OAuthProxyServer.php | 30 +- src/Auth/OAuthTransactionStore.php | 8 +- src/Auth/OAuthUrlPolicy.php | 4 +- src/Auth/Router.php | 54 +- src/Auth/Service.php | 28 +- src/Auth/ServicePart1a.php | 92 +- src/Auth/ServicePart1b.php | 84 +- src/Auth/WeixinGzh.php | 94 +- src/Content/DownloadState.php | 66 +- src/Content/Pay.php | 4 +- src/Content/PayHelpers.php | 182 +-- src/Content/PayOrders.php | 188 +-- src/Content/PayRest.php | 44 +- src/Content/VipMembershipEventRepository.php | 10 +- src/Content/VipMembershipExpiry.php | 44 +- src/Content/VipService.php | 4 +- src/Content/VipServiceMembership.php | 60 +- src/Content/VipServiceModal.php | 62 +- src/Content/VipServicePackages.php | 94 +- src/Content/VipServicePurchase.php | 256 +-- src/Content/VipServiceRest.php | 32 +- src/Content/Visibility.php | 134 +- src/Core/CategoryRewrite.php | 22 +- src/Core/Color.php | 4 +- src/Core/CommentActions.php | 134 +- src/Core/DBMigrator.php | 14 +- src/Core/DBMigratorIdentity.php | 8 +- src/Core/DBMigratorPart2.php | 54 +- src/Core/DBMigratorPart3.php | 72 +- src/Core/DBMigratorTicket.php | 24 +- src/Core/DBMigratorVip.php | 6 +- src/Core/DocsPresenter.php | 4 +- src/Core/DomainModel.php | 58 +- src/Core/FrontSubmit.php | 116 +- src/Core/FrontSubmitChunk.php | 34 +- src/Core/FrontSubmitFeatured.php | 4 +- src/Core/FrontSubmitMedia.php | 18 +- src/Core/FrontSubmitPay.php | 54 +- src/Core/FrontSubmitSave.php | 74 +- src/Core/GoRedirect.php | 60 +- src/Core/PostMetaBox.php | 154 +- src/Core/PostsNavs.php | 18 +- src/Core/ResourceMetaBox.php | 228 +-- src/Core/SEOHead.php | 42 +- src/Core/SEOMetaBox.php | 174 +- src/Core/Scripts.php | 12 +- src/Core/ScriptsPart1b.php | 236 +-- src/Core/ScriptsPart1c.php | 266 +-- src/Core/ScriptsPart2.php | 76 +- src/Core/Setup.php | 56 +- src/Core/SetupPart2.php | 4 +- src/Core/Shortcodes.php | 90 +- src/Core/StatsTracker.php | 18 +- src/Core/Templates.php | 36 +- src/Core/TermMeta.php | 64 +- src/Core/UpdateChecker.php | 45 +- src/Credits/BalanceService.php | 4 +- src/Credits/BalanceServiceCharge.php | 154 +- src/Credits/BalanceServiceRest.php | 160 +- src/Credits/Earn.php | 40 +- src/Credits/MetaAssetService.php | 50 +- src/Credits/PointsFree.php | 40 +- src/Credits/Signin.php | 150 +- src/Extensions/APIAudit.php | 20 +- src/Extensions/ContentAudit.php | 14 +- src/Extensions/IPGeo.php | 14 +- src/Extensions/MeiliSearch.php | 26 +- src/Extensions/SearchPush.php | 32 +- src/Extensions/SearchPushMetaBox.php | 34 +- src/Extensions/SecurityHardening.php | 22 +- src/Extensions/SendLimit.php | 32 +- src/Extensions/SystemTools.php | 6 +- src/Finance/BusinessNumber.php | 4 +- src/Finance/FinancialFlowService.php | 32 +- src/Frontend/CustomCodeRenderer.php | 34 +- src/Frontend/InlineStyleBuilder.php | 70 +- src/Frontend/LoadingOverlayRenderer.php | 62 +- src/Frontend/NavWalker.php | 34 +- src/Frontend/PageAdminSet.php | 150 +- src/Frontend/WeChatShare.php | 22 +- src/Icons/IconCatalog.php | 26 +- src/Icons/IconController.php | 6 +- src/Icons/fa5-icons.php | 2 +- src/Identity/ApplicationRepository.php | 10 +- src/Identity/ApplicationService.php | 28 +- src/Identity/EventRepository.php | 6 +- src/Identity/EvidenceService.php | 40 +- src/Identity/Identity.php | 8 +- src/Identity/RestController.php | 10 +- src/Identity/TransitionService.php | 4 +- src/Ledger/AssetAmount.php | 4 +- src/Ledger/AssetType.php | 4 +- src/Ledger/LedgerAbort.php | 4 +- src/Ledger/LedgerCommand.php | 20 +- src/Ledger/LedgerPresentation.php | 66 +- src/Ledger/LedgerQuery.php | 20 +- src/Ledger/LedgerResult.php | 4 +- src/Ledger/LedgerService.php | 88 +- src/Ledger/OperationKey.php | 6 +- src/Messages/AdminBroadcast.php | 16 +- src/Messages/Message.php | 12 +- src/Messages/MessageTypes.php | 54 +- src/Messages/NotificationAdminQuery.php | 6 +- src/Messages/ReportCenter.php | 62 +- src/Messages/SiteNotice.php | 40 +- src/Payment/BalanceGateway.php | 52 +- src/Payment/ChargeCard.php | 188 +-- src/Payment/CommissionLedger.php | 142 +- src/Payment/Coupon.php | 32 +- src/Payment/CreatorRevenue.php | 18 +- src/Payment/Gateway.php | 42 +- src/Payment/GatewayInterface.php | 4 +- src/Payment/Gateways/AlipayGateway.php | 64 +- src/Payment/Gateways/EpayGateway.php | 74 +- src/Payment/Gateways/PayPalGateway.php | 70 +- src/Payment/Gateways/StripeGateway.php | 86 +- src/Payment/Gateways/WechatOpenid.php | 18 +- src/Payment/Gateways/WechatPayGateway.php | 88 +- src/Payment/Gateways/YansongdaPayFactory.php | 18 +- src/Payment/InviteCode.php | 122 +- src/Payment/Order.php | 16 +- src/Payment/OrderAnalytics.php | 24 +- src/Payment/OrderAnalyticsDaily.php | 16 +- src/Payment/OrderCenterQuery.php | 6 +- src/Payment/OrderCenterRest.php | 32 +- src/Payment/OrderRepository.php | 4 +- src/Payment/OrderRepositoryAdmin.php | 84 +- src/Payment/OrderRepositoryAttempts.php | 4 +- src/Payment/OrderRepositoryCore.php | 116 +- src/Payment/PaymentAttemptLock.php | 6 +- src/Payment/PaymentOrchestrator.php | 46 +- src/Payment/ReferralAttribution.php | 80 +- src/Payment/Revenue.php | 68 +- src/Payment/UserOrders.php | 74 +- src/Payment/WeChatNotify.php | 40 +- src/Payment/Withdrawal.php | 128 +- src/Settings/AuthReader.php | 6 +- src/Settings/Capabilities.php | 80 +- src/Settings/CategoryIntegrationGroups.php | 20 +- src/Settings/CategoryRuntime.php | 26 +- src/Settings/CreditsPaymentGroups.php | 4 +- src/Settings/CreditsRuntime.php | 16 +- src/Settings/DisplayPageGroups.php | 10 +- src/Settings/DisplayRuntime.php | 8 +- src/Settings/DomainGroups.php | 4 +- src/Settings/ExtensionRuntime.php | 6 +- src/Settings/FacadeBulk.php | 14 +- src/Settings/FloatButtons.php | 16 +- src/Settings/HomeCms.php | 22 +- src/Settings/HomepageReader.php | 4 +- src/Settings/Integration.php | 20 +- src/Settings/Mail.php | 12 +- src/Settings/MailNotifications.php | 70 +- src/Settings/MailTemplates.php | 6 +- src/Settings/PaymentRuntime.php | 34 +- src/Settings/PostDisplay.php | 34 +- src/Settings/Settings.php | 44 +- src/Settings/ThemeSearch.php | 44 +- src/Settings/UserRuntime.php | 8 +- src/Sms/ProviderInterface.php | 4 +- src/Sms/SMS.php | 32 +- src/Sms/SMSProviderAliyun.php | 12 +- src/Sms/SMSProviderFactory.php | 10 +- src/Sms/SMSProviderSmsbao.php | 16 +- src/Sms/SMSProviderTencent.php | 12 +- src/Sms/SMSSignatureHelper.php | 4 +- src/Ticket/TicketAttachment.php | 4 +- src/Ticket/TicketConfigRest.php | 100 +- src/Ticket/TicketNoteService.php | 14 +- src/Ticket/TicketNotifier.php | 38 +- src/Ticket/TicketNumber.php | 6 +- src/Ticket/TicketPrereplyService.php | 16 +- src/Ticket/TicketQuery.php | 10 +- src/Ticket/TicketRepository.php | 8 +- src/Ticket/TicketRest.php | 72 +- src/Ticket/TicketRestAdmin.php | 48 +- src/Ticket/TicketService.php | 6 +- src/Ticket/TicketSettings.php | 8 +- src/Ticket/TicketStatus.php | 6 +- src/Ticket/TicketStatusService.php | 8 +- src/Ticket/TicketTypeService.php | 6 +- src/User/AuthApply.php | 74 +- src/User/BadgeAutoAward.php | 12 +- src/User/Badges.php | 192 +-- src/User/BadgesAdmin.php | 38 +- src/User/BalanceAdmin.php | 76 +- src/User/BanAppeal.php | 54 +- src/User/Center.php | 94 +- src/User/CreditsAdmin.php | 120 +- src/User/Follow.php | 8 +- src/User/Home.php | 66 +- src/User/Level.php | 88 +- src/User/LevelAdmin.php | 58 +- src/User/Metrics.php | 28 +- src/User/NotificationPreferences.php | 14 +- src/User/ProfileAdmin.php | 190 +-- src/User/Restriction.php | 34 +- src/WidgetSystem/AdminFormController.php | 94 +- src/WidgetSystem/AssetManager.php | 42 +- src/WidgetSystem/CommonFields.php | 2 +- src/WidgetSystem/FieldSchema.php | 14 +- src/WidgetSystem/FormRenderer.php | 66 +- src/WidgetSystem/FrontendRenderer.php | 42 +- src/WidgetSystem/PostQuery.php | 14 +- src/WidgetSystem/PostRenderer.php | 24 +- src/WidgetSystem/RendererHelpers.php | 24 +- src/WidgetSystem/RendererRegistry.php | 12 +- .../Renderers/ContentRenderer.php | 46 +- .../Renderers/GeneralRenderer.php | 72 +- .../Renderers/KnowledgeProductRenderer.php | 56 +- src/WidgetSystem/Renderers/SliderRenderer.php | 20 +- src/WidgetSystem/Renderers/UserRenderer.php | 74 +- src/WidgetSystem/RestController.php | 16 +- src/WidgetSystem/Runtime.php | 2 +- src/WidgetSystem/SchemaWidget.php | 10 +- src/WidgetSystem/TransferController.php | 30 +- src/WidgetSystem/WidgetAreas.php | 20 +- src/WidgetSystem/WidgetCatalog.php | 6 +- src/WidgetSystem/WidgetDefinition.php | 10 +- src/WidgetSystem/WidgetRegistry.php | 4 +- src/WidgetSystem/WidgetSchemas.php | 6 +- src/WidgetSystem/WidgetTransfer.php | 40 +- src/WidgetSystem/WidgetVisibility.php | 6 +- style.css | 10 +- tag.php | 64 +- templates/pages/page-archives.php | 24 +- templates/pages/page-categories.php | 58 +- templates/pages/page-download-file.php | 88 +- templates/pages/page-download.php | 138 +- templates/pages/page-friends.php | 20 +- templates/pages/page-messages.php | 30 +- templates/pages/page-newposts.php | 30 +- templates/pages/page-posts-navs.php | 54 +- templates/pages/page-profile.php | 18 +- templates/pages/page-sign.php | 24 +- templates/pages/page-submit.php | 260 +-- templates/pages/page-user-home.php | 24 +- templates/parts/auth-content.php | 112 +- templates/parts/content-empty.php | 4 +- templates/parts/content-gallery.php | 4 +- templates/parts/content-post-card.php | 4 +- .../parts/content-profile-comment-item.php | 12 +- templates/parts/content-profile-list-item.php | 14 +- templates/parts/docs/doc-chapter-nav.php | 28 +- templates/parts/docs/doc-index-card.php | 26 +- templates/parts/docs/doc-sidebar.php | 32 +- templates/parts/docs/doc-toc.php | 10 +- templates/parts/docs/doc-tree.php | 18 +- templates/parts/download/download-hero.php | 44 +- .../download/download-permission-card.php | 44 +- templates/parts/home-layout.php | 4 +- templates/parts/login-prompt.php | 12 +- templates/parts/modal-auth.php | 20 +- templates/parts/page-header.php | 10 +- templates/parts/resource-download-box.php | 180 +- templates/parts/resource-related.php | 20 +- templates/parts/single-author-bar.php | 32 +- templates/parts/submit/context.php | 40 +- templates/parts/submit/editor-main.php | 36 +- templates/parts/submit/featured.php | 18 +- templates/parts/submit/sidebar-pay.php | 46 +- templates/parts/submit/sidebar-submit.php | 16 +- templates/parts/submit/sidebar-terms.php | 26 +- templates/parts/submit/term-checks.php | 8 +- templates/parts/user-center/creator-posts.php | 16 +- templates/parts/user-center/header.php | 2 +- templates/parts/user-center/mobile-tabs.php | 2 +- templates/parts/user-center/panel.php | 2 +- .../parts/user-center/runtime-config.php | 6 +- templates/parts/user-center/sidebar.php | 2 +- templates/parts/user-home/panel-comments.php | 8 +- templates/parts/user-home/panel-credits.php | 10 +- templates/parts/user-home/panel-favorites.php | 32 +- templates/parts/user-home/panel-follow.php | 30 +- templates/parts/user-home/panel-posts.php | 16 +- templates/parts/user-shared-helpers.php | 28 +- templates/parts/user/author-hero.php | 136 +- templates/parts/user/ban-block.php | 28 +- templates/shortcodes/archive.php | 26 +- templates/shortcodes/profile.php | 44 +- tests/admin/ai-config-removal.test.cjs | 2 +- tests/admin/baidu-push-harness.php | 18 +- ...-push-settings-reference-contract.test.cjs | 16 +- tests/admin/charge-cards-dependency.test.cjs | 30 +- .../charge-cards-form-constraints.test.cjs | 2 +- .../admin/charge-cards-page-contract.test.cjs | 4 +- tests/admin/charge-cards-pagination.test.cjs | 2 +- ...mment-settings-reference-contract.test.cjs | 12 +- ...ature-settings-reference-contract.test.cjs | 14 +- ...ilter-settings-reference-contract.test.cjs | 16 +- tests/admin/pay-pages-pagination.test.cjs | 4 +- ...-page-settings-reference-contract.test.cjs | 14 +- ...ubmit-settings-reference-contract.test.cjs | 2 +- tests/admin/ticket-admin-rest-harness.php | 60 +- tests/admin/ticket-native-render-harness.php | 24 +- tests/admin/ticket-native-render.test.cjs | 70 +- tests/admin/ticket-page-runtime.test.cjs | 96 +- tests/admin/wechat-settings-harness.php | 10 +- .../wechat-settings-rest-contract.test.cjs | 10 +- tests/asset-ledger/AssetAmountTest.php | 4 +- tests/asset-ledger/BusinessNumberTest.php | 2 +- tests/asset-ledger/CommissionLedgerTest.php | 2 +- tests/asset-ledger/FrontSubmitPayTest.php | 26 +- tests/asset-ledger/LedgerCommandTest.php | 16 +- tests/asset-ledger/LedgerResultTest.php | 4 +- tests/asset-ledger/OperationKeyTest.php | 4 +- tests/asset-ledger/WithdrawalTest.php | 2 +- tests/dev/verify-ban-settings-defaults.php | 12 +- tests/fixtures/page-visual-matrix-v1.json | 12 +- tests/fixtures/widget-golden-v1.json | 1030 ++++++------ .../editor-fullscreen-contract.test.cjs | 2 +- .../featured-buttons-contract.test.cjs | 2 +- .../video-cover-contract.test.cjs | 12 +- .../header-reference-contract.test.cjs | 42 +- .../legacy-navigation-contract.test.cjs | 82 +- tests/visual-results/README.md | 2 +- tests/visual-results/static-a11y-report.md | 2 +- tests/visual/README.md | 10 +- tests/visual/article-fixtures.php | 24 +- tests/visual/article-visual-matrix-v1.json | 2 +- tests/visual/docker-compose.zibll.yml | 2 +- tests/visual/zibll-9.0-article-baseline.json | 2 +- .../account-settings-contract.test.cjs | 84 +- .../account-settings-harness.php | 160 +- tests/widget-system/admin-core.test.cjs | 4 +- .../admin-stats-column-contract.test.cjs | 62 +- .../widget-system/admin-ui-contract.test.cjs | 44 +- .../asset-ledger-contract.test.cjs | 80 +- .../auth-source-contract.test.cjs | 40 +- .../balance-charge-modal.test.cjs | 22 +- .../widget-system/ban-admin-contract.test.cjs | 62 +- tests/widget-system/ban-admin-harness.php | 146 +- .../widget-system/ban-admin-runtime.test.cjs | 70 +- tests/widget-system/bootstrap.php | 58 +- .../captcha-business-contract.test.cjs | 36 +- .../captcha-cloud-contract.test.cjs | 56 +- .../captcha-runtime-harness.test.cjs | 18 +- .../captcha-security-harness.php | 78 +- .../card-pass-modal-redeem.test.cjs | 32 +- .../color-unification-contract.test.cjs | 26 +- .../comment-hard-cut-contract.test.cjs | 32 +- .../comment-image-upload-contract.test.cjs | 4 +- .../widget-system/comment-order-behavior.php | 34 +- .../comment-order-empty-contract.test.cjs | 20 +- .../comment-smilies-removal-contract.test.cjs | 4 +- .../discovery-reference-contract.test.cjs | 10 +- .../discovery-reference-harness.php | 50 +- .../download-direct-contract.test.cjs | 46 +- .../email-system-contract.test.cjs | 16 +- .../financial-flow-contract.test.cjs | 24 +- .../front-submit-attachment-contract.test.cjs | 38 +- .../front-submit-editor-contract.test.cjs | 12 +- .../front-submit-pending-harness.php | 30 +- .../frontend-avatar-shape-contract.test.cjs | 26 +- .../frontend-lifecycle-contract.test.cjs | 54 +- .../frontend-page-edit-harness.php | 194 +-- .../header-multifunction-render-harness.php | 46 +- .../header-multifunction-render.test.cjs | 6 +- .../widget-system/icon-card-contract.test.cjs | 34 +- .../icon-picker-contract.test.cjs | 66 +- .../invite-admin-contract.test.cjs | 58 +- tests/widget-system/invite-admin-harness.php | 26 +- .../invite-code-contract.test.cjs | 36 +- .../widget-system/lazyload-contract.test.cjs | 44 +- .../message-admin-contract.test.cjs | 48 +- tests/widget-system/message-admin-harness.php | 26 +- .../message-admin-runtime.test.cjs | 56 +- .../message-center-contract.test.cjs | 34 +- .../message-center-pagination-harness.php | 8 +- .../message-center-url-harness.php | 14 +- .../modal-scrollbar-compensation.test.cjs | 2 +- tests/widget-system/modal-stack.test.cjs | 44 +- ...notification-preferences-contract.test.cjs | 18 +- .../oauth-security-contract.test.cjs | 4 +- .../widget-system/oauth-security-harness.php | 74 +- .../page-display-contract.test.cjs | 74 +- .../page-display-save-harness.php | 96 +- .../widget-system/pay-card-contract.test.cjs | 46 +- .../pay-sdk-order-contract.test.cjs | 22 +- .../pending-upload-contract.test.cjs | 8 +- .../widget-system/pending-upload-harness.php | 2 +- .../post-editor-reference-contract.test.cjs | 66 +- .../post-list-quick-edit-contract.test.cjs | 52 +- .../post-thumbnail-reference.test.cjs | 4 +- .../post-thumbnail-render-harness.php | 48 +- .../post-visual-contract.test.cjs | 356 ++-- .../posts-render-behavior.test.cjs | 4 +- .../posts-toc-css-contract.test.cjs | 4 +- .../posts-toc-render-contract.test.cjs | 8 +- .../posts-toc-render-harness.php | 22 +- .../posts-wrapper-contract.test.cjs | 4 +- .../profile-comment-contract.test.cjs | 6 +- .../referral-policy-contract.test.cjs | 8 +- .../referral-qr-contract.test.cjs | 26 +- .../repeater-row-key-stability.test.cjs | 10 +- .../report-ban-contract.test.cjs | 200 +-- .../report-modal-runtime.test.cjs | 94 +- tests/widget-system/report-submit-harness.php | 58 +- .../report-submit-runtime.test.cjs | 4 +- tests/widget-system/run.php | 102 +- .../runtime-assets-behavior-harness.php | 18 +- .../sales-volume-float-contract.test.cjs | 12 +- .../scratch-term-aggregation-harness.php | 66 +- .../search-reference-contract.test.cjs | 2 +- tests/widget-system/search-render-harness.php | 74 +- .../search-runtime-contract.test.cjs | 4 +- .../section-navs-runtime.test.cjs | 6 +- tests/widget-system/signin-runtime.test.cjs | 16 +- .../single-cover-height-contract.test.cjs | 14 +- .../site-security-contract.test.cjs | 16 +- tests/widget-system/site-security-harness.php | 84 +- tests/widget-system/split-upload-harness.php | 22 +- .../system-tools-contract.test.cjs | 62 +- tests/widget-system/system-tools-harness.php | 82 +- .../tab-posts-render-behavior.test.cjs | 14 +- .../tab-posts-render-harness.php | 102 +- .../widget-system/tab-posts-runtime.test.cjs | 16 +- .../tab-posts-style-contract.test.cjs | 6 +- .../ticket-captcha-contract.test.cjs | 8 +- .../ticket-lifecycle-contract.test.cjs | 16 +- .../ticket-native-admin-contract.test.cjs | 36 +- .../ticket-permission-contract.test.cjs | 16 +- .../ticket-schema-contract.test.cjs | 30 +- .../ticket-schema-version.test.cjs | 34 +- .../ticket-spa-config-contract.test.cjs | 14 +- tests/widget-system/toast-contract.test.cjs | 118 +- .../user-assets-layout-contract.test.cjs | 8 +- .../user-auth-admin-contract.test.cjs | 98 +- .../widget-system/user-auth-admin-harness.php | 56 +- .../user-auth-admin-runtime.test.cjs | 148 +- .../widget-system/user-badge-actions.test.cjs | 10 +- .../user-badges-contract.test.cjs | 52 +- .../user-badges-modal-harness.php | 50 +- .../widget-system/user-badges-modal.test.cjs | 30 +- .../user-card-checkin-badge-contract.test.cjs | 12 +- .../user-card-runtime-contract.test.cjs | 2 +- .../user-card-runtime-harness.php | 76 +- ...ser-center-sidebar-icons-contract.test.cjs | 38 +- .../user-features-contract.test.cjs | 56 +- .../user-level-contract.test.cjs | 34 +- .../user-profile-phone-contract.test.cjs | 16 +- .../user-profile-phone-harness.php | 236 +-- .../vip-modal-copy-fields.test.cjs | 16 +- .../widget-system/vip-modal-skeleton.test.cjs | 48 +- .../vip-points-entry-harness.php | 24 +- ...ip-points-exchange-description-harness.php | 10 +- .../vip-points-exchange-modal.test.cjs | 100 +- .../vip-settings-structured-contract.test.cjs | 14 +- .../vip-settings-structured-harness.php | 16 +- .../widget-admin-lifecycle.test.cjs | 34 +- .../withdrawal-history-runtime.test.cjs | 14 +- .../yiyan-reference-contract.test.cjs | 12 +- .../zibll-modern-widgets-contract.test.cjs | 24 +- tools/admin-contract-map.md | 20 +- tools/admin-contract-report.json | 56 +- tools/adr-classes-domain-placement.md | 14 +- tools/audit-admin-contracts.php | 6 +- tools/audit-psr4-paths.php | 4 +- tools/audit-widget-system.php | 16 +- tools/build-svg-sprite.mjs | 14 +- tools/echarts-pay-overview.entry.mjs | 2 +- tools/generate-fa5-icons.php | 2 +- tools/generate-widget-golden-fixture.php | 40 +- tools/test-credits-rehydrate.mjs | 18 +- tools/validate-widget-golden.php | 6 +- tools/wp-cli-visual-fixtures.php | 38 +- uninstall.php | 99 +- 997 files changed, 28216 insertions(+), 28188 deletions(-) rename assets/admin/src/components/form/{AksCodeEditor.vue => JioCodeEditor.vue} (100%) rename assets/admin/src/components/form/{AksColorPicker.vue => JioColorPicker.vue} (93%) rename assets/admin/src/components/form/{AksCompositeField.vue => JioCompositeField.vue} (80%) rename assets/admin/src/components/form/{AksField.vue => JioField.vue} (81%) rename assets/admin/src/components/form/{AksFieldGroup.vue => JioFieldGroup.vue} (56%) rename assets/admin/src/components/form/{AksFormRenderer.vue => JioFormRenderer.vue} (87%) rename assets/admin/src/components/form/{AksGalleryField.vue => JioGalleryField.vue} (83%) rename assets/admin/src/components/form/{AksImageSelectField.vue => JioImageSelectField.vue} (63%) rename assets/admin/src/components/form/{AksMediaField.vue => JioMediaField.vue} (74%) rename assets/admin/src/components/form/{AksRepeaterListModal.vue => JioRepeaterListModal.vue} (81%) rename assets/admin/src/components/form/{AksSaveBar.vue => JioSaveBar.vue} (64%) rename assets/admin/src/components/form/{AksSecretClear.vue => JioSecretClear.vue} (75%) rename assets/admin/src/components/form/{AksSelectedOrder.vue => JioSelectedOrder.vue} (72%) rename assets/admin/src/components/form/{AksSortHandle.vue => JioSortHandle.vue} (74%) rename assets/admin/src/components/form/{AksSorterField.vue => JioSorterField.vue} (76%) delete mode 100644 inc/helpers/aksrt-credits.php delete mode 100644 inc/helpers/aksrt-domain-model.php delete mode 100644 inc/helpers/aksrt-icon-picker.php delete mode 100644 inc/helpers/aksrt-rewards.php delete mode 100644 inc/helpers/aksrt-share.php delete mode 100644 inc/helpers/aksrt-shortcodes.php delete mode 100644 inc/helpers/header/aksrt-header-menu-search.php create mode 100644 inc/helpers/header/jio-header-menu-search.php rename inc/helpers/header/{aksrt-header-mobile.php => jio-header-mobile.php} (75%) rename inc/helpers/header/{aksrt-header-navbar.php => jio-header-navbar.php} (70%) rename inc/helpers/header/{aksrt-header-render.php => jio-header-render.php} (54%) rename inc/helpers/{aksrt-ajax-list.php => jio-ajax-list.php} (80%) rename inc/helpers/{aksrt-archive-filters.php => jio-archive-filters.php} (77%) rename inc/helpers/{aksrt-archive.php => jio-archive.php} (80%) rename inc/helpers/{aksrt-auth-ui.php => jio-auth-ui.php} (72%) rename inc/helpers/{aksrt-avatar.php => jio-avatar.php} (65%) rename inc/helpers/{aksrt-comments.php => jio-comments.php} (68%) rename inc/helpers/{aksrt-coupon-order.php => jio-coupon-order.php} (68%) create mode 100644 inc/helpers/jio-credits.php create mode 100644 inc/helpers/jio-domain-model.php rename inc/helpers/{aksrt-float-buttons.php => jio-float-buttons.php} (62%) rename inc/helpers/{aksrt-flow.php => jio-flow.php} (52%) rename inc/helpers/{aksrt-frontend-tags.php => jio-frontend-tags.php} (71%) rename inc/helpers/{aksrt-graphic-card.php => jio-graphic-card.php} (85%) rename inc/helpers/{aksrt-header-menu-buttons.php => jio-header-menu-buttons.php} (66%) rename inc/helpers/{aksrt-header-userbox.php => jio-header-userbox.php} (63%) rename inc/helpers/{aksrt-homepage.php => jio-homepage.php} (68%) rename inc/helpers/{aksrt-i18n-header.php => jio-i18n-header.php} (86%) rename inc/helpers/{aksrt-icon-cards.php => jio-icon-cards.php} (85%) create mode 100644 inc/helpers/jio-icon-picker.php rename inc/helpers/{aksrt-icons.php => jio-icons.php} (86%) rename inc/helpers/{aksrt-identity.php => jio-identity.php} (56%) rename inc/helpers/{aksrt-ip-geo.php => jio-ip-geo.php} (51%) rename inc/helpers/{aksrt-links.php => jio-links.php} (79%) rename inc/helpers/{aksrt-null.php => jio-null.php} (63%) rename inc/helpers/{aksrt-page-template.php => jio-page-template.php} (89%) rename inc/helpers/{aksrt-pay.php => jio-pay.php} (58%) rename inc/helpers/{aksrt-phone.php => jio-phone.php} (90%) rename inc/helpers/{aksrt-posts-renderer.php => jio-posts-renderer.php} (95%) rename inc/helpers/{aksrt-resource.php => jio-resource.php} (69%) create mode 100644 inc/helpers/jio-rewards.php create mode 100644 inc/helpers/jio-share.php create mode 100644 inc/helpers/jio-shortcodes.php rename inc/helpers/{aksrt-single-aside.php => jio-single-aside.php} (68%) rename inc/helpers/{aksrt-single-components.php => jio-single-components.php} (64%) rename inc/helpers/{aksrt-single-render.php => jio-single-render.php} (75%) rename inc/helpers/{aksrt-single.php => jio-single.php} (62%) rename inc/helpers/{aksrt-slider.php => jio-slider.php} (88%) rename inc/helpers/{aksrt-template-tags.php => jio-template-tags.php} (94%) rename inc/helpers/{aksrt-transactions.php => jio-transactions.php} (54%) rename inc/helpers/{aksrt-user-card.php => jio-user-card.php} (85%) rename inc/helpers/{aksrt-user-center.php => jio-user-center.php} (62%) rename inc/helpers/{aksrt-user-dashboard.php => jio-user-dashboard.php} (78%) rename inc/helpers/{aksrt-user-home.php => jio-user-home.php} (78%) rename inc/helpers/{aksrt-vip.php => jio-vip.php} (69%) rename inc/helpers/{aksrt-wait-pay-float.php => jio-wait-pay-float.php} (70%) rename inc/helpers/{aksrt-widgets-markup.php => jio-widgets-markup.php} (75%) rename inc/helpers/{aksrt-yiyan.php => jio-yiyan.php} (65%) rename inc/helpers/search/{aksrt-search-box.php => jio-search-box.php} (75%) rename inc/helpers/search/{aksrt-search-posts.php => jio-search-posts.php} (82%) rename inc/{aksrt-ajax-debug.php => jio-ajax-debug.php} (73%) diff --git a/.gitignore b/.gitignore index fd00a1e3..f571c7b0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ /.workbuddy/ # Project planning, internal docs, and local-only development files -/.aksrt-chrome-profile/ +/.jio-chrome-profile/ /.specs/ /docs/ diff --git a/404.php b/404.php index b96e1535..7d6856a7 100644 --- a/404.php +++ b/404.php @@ -2,15 +2,15 @@ /** * 404 template. * - * @package AKSRT + * @package Jio */ defined('ABSPATH') || exit; get_header(); -$search_placeholder = function_exists('aksrt_get_search_placeholder') ? aksrt_get_search_placeholder() : __('开启精彩搜索', 'aksrt'); -$hot_keywords = function_exists('aksrt_get_search_hot_keywords') ? aksrt_get_search_hot_keywords() : []; +$search_placeholder = function_exists('jio_get_search_placeholder') ? jio_get_search_placeholder() : __('开启精彩搜索', 'jio'); +$hot_keywords = function_exists('jio_get_search_hot_keywords') ? jio_get_search_hot_keywords() : []; $hot_query = new WP_Query([ 'post_type' => 'post', @@ -39,33 +39,33 @@ $top_cats = get_terms([

404

-

+

- +

- + - +
- - + +
-
-

+
+

@@ -78,8 +78,8 @@ $top_cats = get_terms([ have_posts()) : ?> -
-

+
+

    have_posts()) : $hot_query->the_post(); ?>
  • diff --git a/README.md b/README.md index 5e209590..de79c479 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# AKSRT WordPress Theme +# Jio WordPress Theme > **版本**: 3.4.0-dev | **架构**: 原生 PHP + WordPress (非 headless) > **要求**: WordPress >= 6.4 | PHP >= 8.1 @@ -7,7 +7,7 @@ ## 项目概述 -AKSRT 是一款现代化的 WordPress 主题,采用**原生 WordPress 主题架构**开发(PHP + HTML + CSS + JavaScript),不依赖 REST API 进行前端渲染。 +Jio 是一款现代化的 WordPress 主题,采用**原生 WordPress 主题架构**开发(PHP + HTML + CSS + JavaScript),不依赖 REST API 进行前端渲染。 ### 核心特性 @@ -22,14 +22,14 @@ AKSRT 是一款现代化的 WordPress 主题,采用**原生 WordPress 主题 ## 文件结构 ``` -AKSRT-theme/ +Jio-theme/ ├── functions.php # 入口:常量 + Composer autoload + bootstrap + 单例 init ├── style.css # WordPress 主题声明头 -├── composer.json # 第三方依赖 + 主题 PSR-4(AKSRT\ → src/) +├── composer.json # 第三方依赖 + 主题 PSR-4(Jio\ → src/) │ ├── *.php # WP 核心模板保留根目录 │ -├── src/ # Composer PSR-4 类型根(namespace AKSRT\) +├── src/ # Composer PSR-4 类型根(namespace Jio\) │ ├── Admin/ # SPA 编排 + 域控制器 + Schema + Native ops │ ├── Auth/ # 登录 / OAuth / 审核 / 邮箱 │ ├── Content/ # 下载 token / 付费内容 / VIP / 可见性 @@ -89,7 +89,7 @@ AKSRT-theme/ ## 安装方式 -主题类型(`AKSRT\…`)通过 Composer PSR-4 从 `src/` 自动加载;`vendor/` 不进 Git。**部署或更新主题后必须在主题根目录生成 autoload**,否则会出现 `Class "AKSRT\Core\DomainModel" not found` 等致命错误。 +主题类型(`Jio\…`)通过 Composer PSR-4 从 `src/` 自动加载;`vendor/` 不进 Git。**部署或更新主题后必须在主题根目录生成 autoload**,否则会出现 `Class "Jio\Core\DomainModel" not found` 等致命错误。 ### 前置:Composer(必做) @@ -106,16 +106,16 @@ composer dump-autoload -o 确认: ```bash -php -r "require 'vendor/autoload.php'; echo class_exists('AKSRT\\\\Core\\\\DomainModel') ? \"ok\\n\" : \"missing\\n\";" +php -r "require 'vendor/autoload.php'; echo class_exists('Jio\\\\Core\\\\DomainModel') ? \"ok\\n\" : \"missing\\n\";" ``` 应输出 `ok`。若 PHP 开启了 OPcache,重载 php-fpm / 重启 PHP 后再访问站点。 ### 方式一:直接上传(推荐) -1. 将整个 `AKSRT-theme` 文件夹上传到 `wp-content/themes/` +1. 将整个 `Jio-theme` 文件夹上传到 `wp-content/themes/` 2. 在服务器主题目录执行上一节的 `composer install`(若打包时已带上完整 `vendor/` 且已 `dump-autoload`,可跳过) -3. WordPress 后台 → **外观** → **主题** → 找到 **AKSRT** → **激活** +3. WordPress 后台 → **外观** → **主题** → 找到 **Jio** → **激活** ### 方式二:ZIP 打包上传 @@ -126,7 +126,7 @@ php -r "require 'vendor/autoload.php'; echo class_exists('AKSRT\\\\Core\\\\Domai SSH 进入主题目录后: ```bash -cd /path/to/wp-content/themes/AKsrt-theme # 以实际路径为准 +cd /path/to/wp-content/themes/Jio-theme # 以实际路径为准 composer install --no-dev --optimize-autoloader # 或仅刷新映射:composer dump-autoload -o # 可选:reload php-fpm / 清 OPcache @@ -150,9 +150,9 @@ composer install --no-dev --optimize-autoloader ### 2. 后台配置路径 -WordPress 后台左侧 **Admin Bar** → ⚡ **AKSRT 主题设置** +WordPress 后台左侧 **Admin Bar** → ⚡ **Jio 主题设置** -或直接访问:`/wp-admin/admin.php?page=aksrt-settings` +或直接访问:`/wp-admin/admin.php?page=jio-settings` ### 3. 当前后台域 @@ -173,7 +173,7 @@ WordPress 后台左侧 **Admin Bar** → ⚡ **AKSRT 主题设置** ### 5. 部署注意事项 - **佣金结算时效**:结算依赖小时级 wp-cron,并有收益页访问触发的懒结算兜底。高流量站点建议禁用 `WP_CRON_LOCK` 场景下的默认 WP-Cron,改用系统 crontab 定时请求 `wp-cron.php`,保证结算与过期任务准时执行。 -- **反代 / CDN 与 IP 风控**:主题默认按 Cloudflare → 通用代理头顺序识别真实 IP。若需收紧伪造风险,添加 `add_filter('aksrt_trusted_proxies', fn() => ['10.0.0.0/8', '173.245.48.0/20'])`(填入你的代理/CDN 网段);名单非空时仅当 `REMOTE_ADDR` 命中名单才采纳转发头,否则直接使用 `REMOTE_ADDR`(推广奖励的 IP 日上限、验证码等均依赖该函数)。 +- **反代 / CDN 与 IP 风控**:主题默认按 Cloudflare → 通用代理头顺序识别真实 IP。若需收紧伪造风险,添加 `add_filter('jio_trusted_proxies', fn() => ['10.0.0.0/8', '173.245.48.0/20'])`(填入你的代理/CDN 网段);名单非空时仅当 `REMOTE_ADDR` 命中名单才采纳转发头,否则直接使用 `REMOTE_ADDR`(推广奖励的 IP 日上限、验证码等均依赖该函数)。 --- @@ -181,20 +181,20 @@ WordPress 后台左侧 **Admin Bar** → ⚡ **AKSRT 主题设置** ### Settings Facade 分层 -- `AKSRT_Settings` 仍是主题设置的**唯一静态 facade**,外部调用方式保持 `AKSRT_Settings::*` +- `JIO_Settings` 仍是主题设置的**唯一静态 facade**,外部调用方式保持 `JIO_Settings::*` - 具体运行时 getter 已按领域拆分到 `inc/classes/settings/`,例如: - - `class-aksrt-settings-theme-search.php` - - `class-aksrt-settings-post-display.php` - - `class-aksrt-settings-home-cms.php` - - `class-aksrt-settings-user-runtime.php` - - `class-aksrt-settings-integration.php` - - `class-aksrt-settings-display-runtime.php` - - `class-aksrt-settings-extension-runtime.php` - - `class-aksrt-settings-credits-runtime.php` - - `class-aksrt-settings-category-runtime.php` - - `class-aksrt-settings-capabilities.php` -- `inc/bootstrap.php` 会先加载 `settings/class-aksrt-settings.php`,再按领域加载这些 delegate 类 -- 新增设置运行时逻辑时,优先放入对应 settings 子类;仅把聚合输出、统一入口和跨域装配保留在 `AKSRT_Settings` + - `class-jio-settings-theme-search.php` + - `class-jio-settings-post-display.php` + - `class-jio-settings-home-cms.php` + - `class-jio-settings-user-runtime.php` + - `class-jio-settings-integration.php` + - `class-jio-settings-display-runtime.php` + - `class-jio-settings-extension-runtime.php` + - `class-jio-settings-credits-runtime.php` + - `class-jio-settings-category-runtime.php` + - `class-jio-settings-capabilities.php` +- `inc/bootstrap.php` 会先加载 `settings/class-jio-settings.php`,再按领域加载这些 delegate 类 +- 新增设置运行时逻辑时,优先放入对应 settings 子类;仅把聚合输出、统一入口和跨域装配保留在 `JIO_Settings` ### 添加新辅助函数 @@ -202,14 +202,14 @@ WordPress 后台左侧 **Admin Bar** → ⚡ **AKSRT 主题设置** ### 添加新页面模板 -将 `page-{name}.php` 放入 `templates/pages/`,并在 `class-aksrt-templates.php` 中注册。 +将 `page-{name}.php` 放入 `templates/pages/`,并在 `class-jio-templates.php` 中注册。 ### CSS 组织规范 | 目录 | 用途 | 加载场景 | |------|------|---------| | `css/frontend/` | 前端公共样式 | 所有前台页面 | -| `css/admin/` | 后台管理样式 | 仅 AKSRT 设置页面 | +| `css/admin/` | 后台管理样式 | 仅 Jio 设置页面 | | `css/shared/` | 共用组件样式 | 前后端按需加载(如验证码) | --- diff --git a/archive-resources.php b/archive-resources.php index 6be35693..8d60ae1d 100644 --- a/archive-resources.php +++ b/archive-resources.php @@ -2,9 +2,9 @@ /** * Resource Archive Template * - * Virtual list at /resources/ — ordinary posts marked with _aksrt_is_resource. + * Virtual list at /resources/ — ordinary posts marked with _jio_is_resource. * - * @package AKSRT + * @package Jio */ defined('ABSPATH') || exit; @@ -25,18 +25,18 @@ if (!in_array($current_price, ['all', 'free', 'paid'], true)) { $price_min = isset($_GET['price_min']) && $_GET['price_min'] !== '' ? (float) $_GET['price_min'] : ''; $price_max = isset($_GET['price_max']) && $_GET['price_max'] !== '' ? (float) $_GET['price_max'] : ''; -$archive_url = function_exists('aksrt_resource_archive_url') ? aksrt_resource_archive_url() : home_url('/resources/'); +$archive_url = function_exists('jio_resource_archive_url') ? jio_resource_archive_url() : home_url('/resources/'); $sort_options = [ - 'date' => __('最新', 'aksrt'), - 'downloads' => __('热门下载', 'aksrt'), - 'views' => __('阅读最多', 'aksrt'), + 'date' => __('最新', 'jio'), + 'downloads' => __('热门下载', 'jio'), + 'views' => __('阅读最多', 'jio'), ]; $price_options = [ - 'all' => __('全部', 'aksrt'), - 'free' => __('免费', 'aksrt'), - 'paid' => __('付费', 'aksrt'), + 'all' => __('全部', 'jio'), + 'free' => __('免费', 'jio'), + 'paid' => __('付费', 'jio'), ]; $preserve = []; @@ -59,18 +59,18 @@ $has_filter = $current_orderby !== 'date' || $current_price !== 'all' || $price_
    - -
    @@ -79,9 +79,9 @@ $has_filter = $current_orderby !== 'date' || $current_price !== 'all' || $price_
    -
    '; if ($has_sidebar) { get_sidebar(); } diff --git a/assets/admin/extract-naive-styles.mjs b/assets/admin/extract-naive-styles.mjs index 838de687..82be1608 100644 --- a/assets/admin/extract-naive-styles.mjs +++ b/assets/admin/extract-naive-styles.mjs @@ -104,7 +104,7 @@ const COMPONENT_STYLES = [ ] async function extractStyles() { - console.log('\n[AKSRT] 开始提取 NaiveUI 组件样式...\n') + console.log('\n[Jio] 开始提取 NaiveUI 组件样式...\n') const allCss = [] let successCount = 0 @@ -137,9 +137,9 @@ async function extractStyles() { // 静默跳过的后果是组件样式整体缺失(取色器曾因此没有尺寸和边框,糊成一团), // 而页面不报错,只能靠肉眼发现。 if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') { - console.error(`[AKSRT] 样式路径不存在,已跳过: ${componentPath}`) + console.error(`[Jio] 样式路径不存在,已跳过: ${componentPath}`) } else { - console.error(`[AKSRT] 样式提取异常,已跳过: ${componentPath}: ${err && err.message}`) + console.error(`[Jio] 样式提取异常,已跳过: ${componentPath}: ${err && err.message}`) } failCount++ } @@ -148,7 +148,7 @@ async function extractStyles() { const cssOutput = allCss.join('\n\n') if (!cssOutput.trim()) { - console.warn('[AKSRT] 警告:未提取到任何 NaiveUI 样式!') + console.warn('[Jio] 警告:未提取到任何 NaiveUI 样式!') return null } @@ -165,7 +165,7 @@ ${cssOutput}` await writeFile(cssFile, fullContent, 'utf-8') - console.log(`[AKSRT] NaiveUI 样式提取完成:`) + console.log(`[Jio] NaiveUI 样式提取完成:`) console.log(` 成功: ${successCount} 个组件`) console.log(` 跳过: ${failCount} 个组件`) console.log(` 输出: ${cssFile}`) @@ -176,6 +176,6 @@ ${cssOutput}` // 执行 extractStyles().catch((err) => { - console.error('[AKSRT] 样式提取失败:', err) + console.error('[Jio] 样式提取失败:', err) process.exit(1) }) diff --git a/assets/admin/index.html b/assets/admin/index.html index 7418cf13..b5855ff6 100644 --- a/assets/admin/index.html +++ b/assets/admin/index.html @@ -3,10 +3,10 @@ - AKSRT 主题设置 + Jio 主题设置 -
    +
    diff --git a/assets/admin/package-lock.json b/assets/admin/package-lock.json index fdbdc2d7..9d983df7 100644 --- a/assets/admin/package-lock.json +++ b/assets/admin/package-lock.json @@ -1,11 +1,11 @@ { - "name": "aksrt-admin", + "name": "jio-admin", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "aksrt-admin", + "name": "jio-admin", "version": "1.0.0", "dependencies": { "@codemirror/lang-css": "^6.3.1", diff --git a/assets/admin/package.json b/assets/admin/package.json index c7dee7a0..7580efcf 100644 --- a/assets/admin/package.json +++ b/assets/admin/package.json @@ -1 +1 @@ -{"name":"aksrt-admin","version":"1.0.0","private":true,"type":"module","scripts":{"dev":"vite","build":"vite build && node extract-naive-styles.mjs","build:public":"node ../../tools/build-public-assets.mjs","build:pay-charts":"node ../../tools/build-pay-charts.mjs","preview":"vite preview"},"dependencies":{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.5","@codemirror/theme-one-dark":"^6.1.3","codemirror":"^6.0.2","naive-ui":"^2.40.0","pinia":"^2.2.0","vue":"^3.5.0","vue-router":"^4.4.0","vuedraggable":"^4.1.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.1.0","echarts":"^6.1.0","esbuild":"^0.25.12","vite":"^6.0.0"},"allowScripts":{"esbuild@0.25.12":true,"vue-demi@0.14.10":true}} \ No newline at end of file +{"name":"jio-admin","version":"1.0.0","private":true,"type":"module","scripts":{"dev":"vite","build":"vite build && node extract-naive-styles.mjs","build:public":"node ../../tools/build-public-assets.mjs","build:pay-charts":"node ../../tools/build-pay-charts.mjs","preview":"vite preview"},"dependencies":{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.5","@codemirror/theme-one-dark":"^6.1.3","codemirror":"^6.0.2","naive-ui":"^2.40.0","pinia":"^2.2.0","vue":"^3.5.0","vue-router":"^4.4.0","vuedraggable":"^4.1.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.1.0","echarts":"^6.1.0","esbuild":"^0.25.12","vite":"^6.0.0"},"allowScripts":{"esbuild@0.25.12":true,"vue-demi@0.14.10":true}} \ No newline at end of file diff --git a/assets/admin/src/App.vue b/assets/admin/src/App.vue index 6a4981b4..43c45f0d 100644 --- a/assets/admin/src/App.vue +++ b/assets/admin/src/App.vue @@ -6,9 +6,9 @@ - + -