From 1f004aea46500a3004659bd510fe475bb85f3908 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Aug 2026 21:31:55 +0800 Subject: [PATCH] fix(modal): align rollout schema contract Co-Authored-By: Claude Fable 5 --- assets/admin/src/constants/sections/tools.js | 8 ++++---- ...{modal-rollout.js => frontend-modal-rollout.js} | 14 +++++++------- assets/admin/src/schema/sections/tools/index.js | 4 ++-- src/Admin/Schema/SchemaTools.php | 2 +- ...out.php => SchemaToolsFrontendModalRollout.php} | 10 +++++----- src/Admin/ToolsController.php | 2 -- src/Core/ScriptsPart1c.php | 8 ++++---- src/Settings/DomainGroups.php | 8 -------- .../{ModalRuntime.php => FrontendModalRuntime.php} | 12 ++++++------ src/Settings/Settings.php | 11 +++++++++++ 10 files changed, 40 insertions(+), 39 deletions(-) rename assets/admin/src/schema/sections/tools/{modal-rollout.js => frontend-modal-rollout.js} (79%) rename src/Admin/Schema/{SchemaToolsModalRollout.php => SchemaToolsFrontendModalRollout.php} (92%) rename src/Settings/{ModalRuntime.php => FrontendModalRuntime.php} (58%) diff --git a/assets/admin/src/constants/sections/tools.js b/assets/admin/src/constants/sections/tools.js index 7b45ce81..02272dcf 100644 --- a/assets/admin/src/constants/sections/tools.js +++ b/assets/admin/src/constants/sections/tools.js @@ -26,14 +26,14 @@ export const toolsSection = { section: 'backup', }), schemaPage({ - key: 'tools-modal-rollout', - name: 'ToolsModalRollout', + key: 'tools-frontend-modal-rollout', + name: 'ToolsFrontendModalRollout', label: '前台弹窗灰度', - route: '/tools/modal-rollout', + route: '/tools/frontend-modal-rollout', title: '前台弹窗灰度', desc: '按领域控制前台弹窗新流程的分阶段发布。', canonicalDomain: 'tools', - section: 'modal-rollout', + section: 'frontend-modal-rollout', }), customPage({ key: 'tools-health', diff --git a/assets/admin/src/schema/sections/tools/modal-rollout.js b/assets/admin/src/schema/sections/tools/frontend-modal-rollout.js similarity index 79% rename from assets/admin/src/schema/sections/tools/modal-rollout.js rename to assets/admin/src/schema/sections/tools/frontend-modal-rollout.js index 591705ea..a3f9ca43 100644 --- a/assets/admin/src/schema/sections/tools/modal-rollout.js +++ b/assets/admin/src/schema/sections/tools/frontend-modal-rollout.js @@ -1,17 +1,17 @@ -export const modalRolloutSchema = { - key: 'tools.modal-rollout', +export const frontendModalRolloutSchema = { + key: 'tools.frontend-modal-rollout', title: '前台弹窗灰度', icon: 'fas fa-bolt', description: '按领域控制前台弹窗新流程的分阶段发布。', defaults: { frontend_modal_rollout_identity: false, - frontend_modal_rollout_badges: false, - frontend_modal_rollout_orders: false, + frontend_modal_rollout_badge: false, + frontend_modal_rollout_order: false, frontend_modal_rollout_vip: false, }, groups: [ { - key: 'modal-rollout', + key: 'rollout', title: '弹窗新流程开关', icon: 'fas fa-toggle-on', fields: [ @@ -22,13 +22,13 @@ export const modalRolloutSchema = { help: '启用统一弹窗运行时与认证快照流程。', }, { - key: 'frontend_modal_rollout_badges', + key: 'frontend_modal_rollout_badge', label: '徽章新流程', type: 'switch', help: '启用统一 JSON 徽章流程和短缓存。', }, { - key: 'frontend_modal_rollout_orders', + key: 'frontend_modal_rollout_order', label: '订单新流程', type: 'switch', help: '启用订单详情快速开壳与状态同步流程。', diff --git a/assets/admin/src/schema/sections/tools/index.js b/assets/admin/src/schema/sections/tools/index.js index 1a12528c..047e4c75 100644 --- a/assets/admin/src/schema/sections/tools/index.js +++ b/assets/admin/src/schema/sections/tools/index.js @@ -7,12 +7,12 @@ import { importExportSchema } from './import-export.js' import { healthSchema } from './health.js' import { emailRollbackSchema } from './email-rollback.js' import { backupSchema } from './backup.js' -import { modalRolloutSchema } from './modal-rollout.js' +import { frontendModalRolloutSchema } from './frontend-modal-rollout.js' export const toolsSchemas = { 'import-export': importExportSchema, health: healthSchema, 'email-rollback': emailRollbackSchema, backup: backupSchema, - 'modal-rollout': modalRolloutSchema, + 'frontend-modal-rollout': frontendModalRolloutSchema, } diff --git a/src/Admin/Schema/SchemaTools.php b/src/Admin/Schema/SchemaTools.php index 3828e2c9..7da3ddb0 100644 --- a/src/Admin/Schema/SchemaTools.php +++ b/src/Admin/Schema/SchemaTools.php @@ -18,7 +18,7 @@ class SchemaTools { 'health' => SchemaToolsHealth::build(), 'backup' => SchemaToolsBackup::build(), 'email-rollback' => SchemaToolsEmailRollback::build(), - 'modal-rollout' => SchemaToolsModalRollout::build(), + 'frontend-modal-rollout' => SchemaToolsFrontendModalRollout::build(), ], ]; } diff --git a/src/Admin/Schema/SchemaToolsModalRollout.php b/src/Admin/Schema/SchemaToolsFrontendModalRollout.php similarity index 92% rename from src/Admin/Schema/SchemaToolsModalRollout.php rename to src/Admin/Schema/SchemaToolsFrontendModalRollout.php index 4f6574fa..acaa428a 100644 --- a/src/Admin/Schema/SchemaToolsModalRollout.php +++ b/src/Admin/Schema/SchemaToolsFrontendModalRollout.php @@ -7,17 +7,17 @@ namespace AKSRT\Admin\Schema; defined('ABSPATH') || exit; -class SchemaToolsModalRollout { +class SchemaToolsFrontendModalRollout { public static function build(): array { return [ - 'key' => 'modal-rollout', + 'key' => 'frontend-modal-rollout', 'title' => '前台弹窗灰度', 'version' => '1.0.0', 'option_key' => 'aksrt_settings', 'groups' => [ [ - 'key' => 'modal-rollout', + 'key' => 'rollout', 'title' => '弹窗新流程开关', 'fields' => [ [ @@ -28,14 +28,14 @@ class SchemaToolsModalRollout { 'help' => '启用统一弹窗运行时与认证快照流程。', ], [ - 'key' => 'frontend_modal_rollout_badges', + 'key' => 'frontend_modal_rollout_badge', 'label' => '徽章新流程', 'type' => 'switch', 'default' => false, 'help' => '启用统一 JSON 徽章流程和短缓存。', ], [ - 'key' => 'frontend_modal_rollout_orders', + 'key' => 'frontend_modal_rollout_order', 'label' => '订单新流程', 'type' => 'switch', 'default' => false, diff --git a/src/Admin/ToolsController.php b/src/Admin/ToolsController.php index 17c6456c..829e8e72 100644 --- a/src/Admin/ToolsController.php +++ b/src/Admin/ToolsController.php @@ -17,8 +17,6 @@ class ToolsController extends ControllerBase { } public function register_routes(): void { - $this->register_section_routes('tools', 'tools'); - // Health: email verification status register_rest_route(self::API_NAMESPACE, '/health/email-verification', [ 'methods' => 'GET', diff --git a/src/Core/ScriptsPart1c.php b/src/Core/ScriptsPart1c.php index b7378b3f..0a5d3796 100644 --- a/src/Core/ScriptsPart1c.php +++ b/src/Core/ScriptsPart1c.php @@ -561,11 +561,11 @@ trait ScriptsPart1c { 'restUrl' => esc_url_raw(rest_url('aksrt/v1')), // Alias used by modal-auth / follow / report (same value as restUrl). 'apiUrl' => esc_url_raw(rest_url('aksrt/v1')), - 'modalRollout' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_frontend_modal_rollout_settings() : [ - 'identity' => false, - 'badges' => false, - 'orders' => false, + 'frontendModalRollout' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_frontend_modal_rollout() : [ 'vip' => false, + 'order' => false, + 'identity' => false, + 'badge' => false, ], 'stickyEnabled' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_post_list_style_settings()['sticky_enabled'] : true, 'stickyPages' => class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_post_list_style_settings()['sticky_pages'] : ['home', 'cat'], diff --git a/src/Settings/DomainGroups.php b/src/Settings/DomainGroups.php index c93b47f2..12e5e639 100644 --- a/src/Settings/DomainGroups.php +++ b/src/Settings/DomainGroups.php @@ -179,12 +179,4 @@ trait DomainGroups { return Capabilities::get_system_tools_settings(); } - /** - * 获取前台弹窗按领域灰度开关。 - * - * @return array{identity:bool,badges:bool,orders:bool,vip:bool} - */ - public static function get_frontend_modal_rollout_settings(): array { - return ModalRuntime::get_frontend_modal_rollout_settings(); - } } diff --git a/src/Settings/ModalRuntime.php b/src/Settings/FrontendModalRuntime.php similarity index 58% rename from src/Settings/ModalRuntime.php rename to src/Settings/FrontendModalRuntime.php index f7ff9e6b..05a45cf2 100644 --- a/src/Settings/ModalRuntime.php +++ b/src/Settings/FrontendModalRuntime.php @@ -9,21 +9,21 @@ namespace AKSRT\Settings; defined('ABSPATH') || exit; -class ModalRuntime { +class FrontendModalRuntime { /** * Read the per-domain frontend modal rollout switches. * - * @return array{identity:bool,badges:bool,orders:bool,vip:bool} + * @return array{vip:bool,order:bool,identity:bool,badge:bool} */ - public static function get_frontend_modal_rollout_settings(): array { + public static function get_frontend_modal_rollout(): array { $settings = Settings::get_all(); return [ - 'identity' => !empty($settings['frontend_modal_rollout_identity']), - 'badges' => !empty($settings['frontend_modal_rollout_badges']), - 'orders' => !empty($settings['frontend_modal_rollout_orders']), 'vip' => !empty($settings['frontend_modal_rollout_vip']), + 'order' => !empty($settings['frontend_modal_rollout_order']), + 'identity' => !empty($settings['frontend_modal_rollout_identity']), + 'badge' => !empty($settings['frontend_modal_rollout_badge']), ]; } } diff --git a/src/Settings/Settings.php b/src/Settings/Settings.php index cd6f755d..edf517e3 100644 --- a/src/Settings/Settings.php +++ b/src/Settings/Settings.php @@ -526,6 +526,17 @@ class Settings { + /** + * 获取前台弹窗按领域灰度开关。 + * + * @return array{vip:bool,order:bool,identity:bool,badge:bool} + */ + public static function get_frontend_modal_rollout(): array { + return FrontendModalRuntime::get_frontend_modal_rollout(); + } + + + /** * 获取侧边栏配置 *