The 代码高亮 and 系统公告 schemas existed but appeared in no menu, so their routes were never generated (routes come from the sidebar constants). The reference keeps both inside the 常用功能 panel rather than as their own entries, so follow that structure instead of adding sidebar items. - global/common now carries three groups after the lazy-load ones: 代码高亮 (switch / line numbers / buttons / max height / light+dark theme) and 弹窗通知 (policy, content, 4 buttons, size, radius, icon, expiry) - group keys are uniquified (code-highlight, code-theme, notice-*) so they do not collide with the existing performance group - delete the orphan code-highlight.js / system-notice.js schemas and their section entries on both the Vue and PHP sides - delete post-list/pay.js and its PHP counterpart: every post_pay_* and post_download_* key there had zero runtime consumers, and the reference has no such page (paid-content config lives under 支付&付费) tools/health and tools/import-export turned out to already be reachable as custom pages, and remain untouched. Tests: admin contract audit 0 errors (warnings 56 → 51); SPA builds clean; suite 967/968 with the pre-existing frontend-lifecycle failure. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
288 lines
12 KiB
JSON
288 lines
12 KiB
JSON
{
|
|
"generated_at": "2026-11-03T09:49:39+00:00",
|
|
"errors": [],
|
|
"warnings": [
|
|
"customPage tools-update section 'tools/update' not in PHP schema (ok if pure operational page)",
|
|
"customPage users-wechat-template section 'users/wechat-template' not in PHP schema (ok if pure operational page)",
|
|
"enum incomplete parse for 'alipay_pc_mode' (php subset of js): php=[facepay] js=[facepay,web]",
|
|
"enum incomplete parse for 'avatar_external' (php subset of js): php=[] js=[,gravatar,weavatar,cravatar,geekzu,loli,sep,v2ex]",
|
|
"enum incomplete parse for 'backup_frequency' (php subset of js): php=[daily] js=[daily,weekly,monthly]",
|
|
"enum incomplete parse for 'bind_reminder' (php subset of js): php=[email] js=[email,phone,email_phone,close]",
|
|
"enum incomplete parse for 'content_audit_on_failure' (php subset of js): php=[allow] js=[allow,block]",
|
|
"enum incomplete parse for 'content_audit_provider' (php subset of js): php=[baidu] js=[baidu,null]",
|
|
"enum incomplete parse for 'direction' (php subset of js): php=[horizontal] js=[horizontal,vertical]",
|
|
"enum incomplete parse for 'effect' (php subset of js): php=[slide] js=[slide,fade,cube,coverflow,flip]",
|
|
"enum incomplete parse for 'font_family' (php subset of js): php=[system] js=[system,noto-sans-sc,noto-serif-sc,custom]",
|
|
"enum incomplete parse for 'i18n_default_lang' (php subset of js): php=[zh-CN] js=[zh-CN,en,zh-TW,ja,ko,fr,de,es,ru]",
|
|
"enum incomplete parse for 'i18n_switcher_position' (php subset of js): php=[header] js=[header,footer,both,none]",
|
|
"enum incomplete parse for 'i18n_url_strategy' (php subset of js): php=[query] js=[query,path,subdomain]",
|
|
"enum incomplete parse for 'img_position' (php subset of js): php=[left] js=[left,right]",
|
|
"enum incomplete parse for 'invit_code_s' (php subset of js): php=[close] js=[close,open,must]",
|
|
"enum incomplete parse for 'invite_code_s' (php subset of js): php=[close] js=[close,open,must]",
|
|
"enum incomplete parse for 'ip_addr_sdk' (php subset of js): php=[polling] js=[polling,qq,amap,null]",
|
|
"enum incomplete parse for 'ip_geo_format' (php subset of js): php=[province_city] js=[province_city,province,country_province]",
|
|
"enum incomplete parse for 'lazy_animation' (php subset of js): php=[fade] js=[blur,fade,scale]",
|
|
"enum incomplete parse for 'list_meta_show' (php subset of js): php=[view] js=[view,like,comm]",
|
|
"enum incomplete parse for 'list_orderby' (php subset of js): php=[date] js=[date,modified,default]",
|
|
"enum incomplete parse for 'list_show_type' (php subset of js): php=[separate] js=[separate,no_margin]",
|
|
"enum incomplete parse for 'list_thumb_fit' (php subset of js): php=[] js=[,contain]",
|
|
"enum incomplete parse for 'list_type' (php subset of js): php=[text] js=[text,thumb,thumb_if_has,card]",
|
|
"enum incomplete parse for 'lists' (php subset of js): php=[modified] js=[modified,date,views,like,comment_count,favorite,rand]",
|
|
"enum incomplete parse for 'mandatory_bind' (php subset of js): php=[email] js=[email,phone,email_phone,close]",
|
|
"enum incomplete parse for 'message_paginate_type' (php subset of js): php=[ajax_lists] js=[ajax_lists,default]",
|
|
"enum incomplete parse for 'oauth_bind_type' (php subset of js): php=[auto] js=[auto,manual]",
|
|
"enum incomplete parse for 'oauth_proxy_mode' (php subset of js): php=[close] js=[close,server,client]",
|
|
"enum incomplete parse for 'paging_ajax_s' (php subset of js): php=[1] js=[1,0]",
|
|
"enum incomplete parse for 'pattern' (php subset of js): php=[allow] js=[allow,prohibit]",
|
|
"enum incomplete parse for 'pay_alipay_sdk_options' (php subset of js): php=[official_alipay] js=[official_alipay,epay,null]",
|
|
"enum incomplete parse for 'pay_box_position' (php subset of js): php=[box_top] js=[box_top,top,bottom,box_bottom]",
|
|
"enum incomplete parse for 'pay_modo_default' (php subset of js): php=[0] js=[0,points]",
|
|
"enum incomplete parse for 'pay_wechat_sdk_options' (php subset of js): php=[official_wechat] js=[official_wechat,epay,null]",
|
|
"enum incomplete parse for 'post_time_source' (php subset of js): php=[date] js=[date,modified]",
|
|
"enum incomplete parse for 'referral_attribution_model' (php subset of js): php=[first_touch] js=[first_touch,last_touch]",
|
|
"enum incomplete parse for 'search_type_in' (php subset of js): php=[post] js=[post,user]",
|
|
"enum incomplete parse for 'sign_card_position' (php subset of js): php=[left] js=[left,center,right]",
|
|
"enum incomplete parse for 'sign_theme_mode' (php subset of js): php=[no] js=[no,white-theme,dark-theme]",
|
|
"enum incomplete parse for 'sms_ali_api_type' (php subset of js): php=[sms] js=[sms,verify]",
|
|
"enum incomplete parse for 'sms_sdk' (php subset of js): php=[null] js=[null,ali,tencent,smsbao]",
|
|
"enum incomplete parse for 'style' (php subset of js): php=[null] js=[null,style2]",
|
|
"enum incomplete parse for 'system_notice_policy' (php subset of js): php=[] js=[,signin,vip,free,auth]",
|
|
"enum incomplete parse for 'system_notice_size' (php subset of js): php=[] js=[,modal-mini,modal-sm,modal-lg]",
|
|
"enum incomplete parse for 'theme_mode' (php subset of js): php=[white-theme] js=[white-theme,dark-theme,time-auto]",
|
|
"enum incomplete parse for 'user_email_limit_type' (php subset of js): php=[not] js=[not,allow]",
|
|
"enum incomplete parse for 'user_sign_type' (php subset of js): php=[modal] js=[modal,page]",
|
|
"enum incomplete parse for 'user_signin_nopas_active' (php subset of js): php=[nopas] js=[nopas,pas,only_nopas]",
|
|
"enum incomplete parse for 'weixingzh_gzh_type' (php subset of js): php=[service] js=[service,subscribe]"
|
|
],
|
|
"info": [
|
|
"PHP schema domains: global, page_display, post_list, permissions, users, payment, extensions, tools, ExtensionsAudit, ExtensionsIP, ExtensionsPush, ExtensionsSecurity, ExtensionsSystem, ToolsBackup, ToolsHealth, ToolsImportExport, PostListList",
|
|
"Menu pages discovered: 61",
|
|
"admin build ok; chunks=33"
|
|
],
|
|
"domains": {
|
|
"global": {
|
|
"sections": [
|
|
"common",
|
|
"custom-code",
|
|
"email",
|
|
"i18n",
|
|
"layout",
|
|
"logo",
|
|
"search",
|
|
"seo",
|
|
"share"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/GlobalSchema.php"
|
|
]
|
|
},
|
|
"page_display": {
|
|
"sections": [
|
|
"category",
|
|
"footer",
|
|
"header-components",
|
|
"header-nav",
|
|
"homepage",
|
|
"other",
|
|
"tag",
|
|
"user-home"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaPageDisplay.php"
|
|
]
|
|
},
|
|
"post_list": {
|
|
"sections": [
|
|
"comment",
|
|
"feature",
|
|
"filter",
|
|
"list",
|
|
"page",
|
|
"submit",
|
|
"thumb"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaPostList.php"
|
|
]
|
|
},
|
|
"permissions": {
|
|
"sections": [
|
|
"attachment",
|
|
"capabilities",
|
|
"login",
|
|
"moderation"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaPermissions.php"
|
|
]
|
|
},
|
|
"users": {
|
|
"sections": [
|
|
"auth",
|
|
"badge",
|
|
"credits",
|
|
"features",
|
|
"level",
|
|
"notifications",
|
|
"oauth",
|
|
"report",
|
|
"sms",
|
|
"ticket",
|
|
"verify"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaUsers.php",
|
|
"src/Admin/Schema/Users/SchemaUsersTicket.php"
|
|
]
|
|
},
|
|
"payment": {
|
|
"sections": [
|
|
"affiliate",
|
|
"gateway",
|
|
"knowledge",
|
|
"recharge",
|
|
"revenue",
|
|
"vip",
|
|
"withdrawal"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaPayment.php"
|
|
]
|
|
},
|
|
"extensions": {
|
|
"sections": [
|
|
"audit",
|
|
"ip",
|
|
"push",
|
|
"security",
|
|
"system"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaExtensions.php"
|
|
]
|
|
},
|
|
"tools": {
|
|
"sections": [
|
|
"backup",
|
|
"health",
|
|
"import-export"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaTools.php"
|
|
]
|
|
},
|
|
"ExtensionsAudit": {
|
|
"sections": [
|
|
"audit"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaExtensionsAudit.php"
|
|
]
|
|
},
|
|
"ExtensionsIP": {
|
|
"sections": [
|
|
"ip"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaExtensionsIP.php"
|
|
]
|
|
},
|
|
"ExtensionsPush": {
|
|
"sections": [
|
|
"push"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaExtensionsPush.php"
|
|
]
|
|
},
|
|
"ExtensionsSecurity": {
|
|
"sections": [
|
|
"security"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaExtensionsSecurity.php"
|
|
]
|
|
},
|
|
"ExtensionsSystem": {
|
|
"sections": [
|
|
"system"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaExtensionsSystem.php"
|
|
]
|
|
},
|
|
"ToolsBackup": {
|
|
"sections": [
|
|
"backup"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaToolsBackup.php"
|
|
]
|
|
},
|
|
"ToolsHealth": {
|
|
"sections": [
|
|
"health"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaToolsHealth.php"
|
|
]
|
|
},
|
|
"ToolsImportExport": {
|
|
"sections": [
|
|
"import-export"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/SchemaToolsImportExport.php"
|
|
]
|
|
},
|
|
"PostListList": {
|
|
"sections": [
|
|
"list"
|
|
],
|
|
"files": [
|
|
"src/Admin/Schema/PostList/SchemaPostListList.php"
|
|
]
|
|
}
|
|
},
|
|
"page_count": 61,
|
|
"build": {
|
|
"present": true,
|
|
"entry": true,
|
|
"missing_chunks": [],
|
|
"chunks": [
|
|
"SchemaPage.nbpKWBDL.js",
|
|
"vendor-vue.CibbKclz.js",
|
|
"FaIcon.DB-L86Cm.js",
|
|
"useCollapsibleItems.DZpGrxDC.js",
|
|
"vendor-draggable.CJPlJ2VA.js",
|
|
"FaIconPicker.BAwAiMfQ.js",
|
|
"shared-api.CBZ9FiMu.js",
|
|
"vendor-misc.DkFG_sHo.js",
|
|
"JioColorPicker.QfaAsnV3.js",
|
|
"sortable-options.CCWOkUQx.js",
|
|
"level.BzX407It.js",
|
|
"badge.on0sWygn.js",
|
|
"vendor-naive.Dfu2WQKq.js",
|
|
"DeferredPage._-8ZQ7kA.js",
|
|
"NativeOpsRedirect.zFnHF1SN.js",
|
|
"FloatingButtonsSettings.DOwK-RTG.js",
|
|
"PageHeader.nyzEkEki.js",
|
|
"FooterTabbarSettings.tb4NL7kN.js",
|
|
"PostPageSettings.C4aWDAvO.js",
|
|
"CommentSettings.DNlrCxSG.js",
|
|
"PermissionsCapabilities.DqpqZWmL.js",
|
|
"CmsCredits.B6Gorymm.js",
|
|
"ThemeInfoPage.D4pAf5Wr.js",
|
|
"ThemeAuthorizationPage.dha7vRbS.js",
|
|
"DocsPage.Vq5ivh2L.js",
|
|
"UsersVerify.DQdIZBGv.js",
|
|
"UsersLevel.9dYF2o-O.js",
|
|
"UsersBadge.CDPcEJ-D.js",
|
|
"UsersWechatTemplate.CCecYMLT.js",
|
|
"UsersTicket.Y46bme7L.js",
|
|
"ToolsImportExport.BxHqqdz0.js",
|
|
"ToolsHealth.DrJqHumh.js",
|
|
"ToolsUpdate.rL8TduLs.js"
|
|
]
|
|
}
|
|
} |