fix(admin): replicate reference front-submit settings page 1:1

- Rewrite post_list/submit schema (PHP + JS) with the reference theme's
  field set, order, defaults and dependencies; topics fields excluded
- Map PostDisplay::get_submit_settings() and the FrontSubmit runtime to
  the new keys without legacy fallback
- Guest submission follows the capability matrix; category required on
  submit; pay limits read from the cash/points fieldset
- Drop dead front_submit_* settings, template branches and JS config
- Add submit settings reference contract test
This commit is contained in:
2026-09-24 12:29:19 +08:00
parent ed71314986
commit 264f2c51b2
14 changed files with 354 additions and 292 deletions
+37 -36
View File
@@ -1,5 +1,5 @@
{
"generated_at": "2026-09-06T05:00:37+00:00",
"generated_at": "2026-09-24T04:13:34+00:00",
"errors": [],
"warnings": [
"customPage tools-update section 'tools/update' not in PHP schema (ok if pure operational page)",
@@ -15,13 +15,12 @@
"enum incomplete parse for 'content_audit_provider' (php subset of js): php=[baidu] js=[baidu,null]",
"enum incomplete parse for 'epay_device' (php subset of js): php=[auto] js=[auto,pc,mobile]",
"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 'front_submit_editor_mode' (php subset of js): php=[rich] js=[rich,markdown,plain]",
"enum incomplete parse for 'front_submit_review_mode' (php subset of js): php=[pending] js=[pending,publish,draft]",
"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]",
@@ -35,13 +34,18 @@
"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_author_card_orderby' (php subset of js): php=[views] js=[views,date,modified,comment_count]",
"enum incomplete parse for 'post_author_card_style' (php subset of js): php=[card] js=[card,list]",
"enum incomplete parse for 'post_pay_box_position' (php subset of js): php=[content] js=[content,mask]",
"enum incomplete parse for 'post_related_orderby' (php subset of js): php=[modified] js=[modified,date,views,like,comment_count,favorite,rand]",
"enum incomplete parse for 'post_related_type' (php subset of js): php=[img] js=[img,list,text]",
"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]",
@@ -62,7 +66,7 @@
"info": [
"PHP schema domains: global, page_display, post_list, permissions, users, payment, extensions, tools, ExtensionsAudit, ExtensionsIP, ExtensionsPush, ToolsBackup, ToolsHealth, ToolsImportExport",
"Menu pages discovered: 61",
"admin build ok; chunks=32"
"admin build ok; chunks=30"
],
"domains": {
"global": {
@@ -147,9 +151,8 @@
"payment": {
"sections": [
"affiliate",
"card-pass",
"gateway",
"order",
"knowledge",
"recharge",
"revenue",
"vip",
@@ -234,38 +237,36 @@
"entry": true,
"missing_chunks": [],
"chunks": [
"SchemaPage.CcW0AW7T.js",
"vendor-vue.BxZIRU0_.js",
"shared-api.BUPhZW2Y.js",
"FaIcon.NZ6TDkNu.js",
"shared-api.DnsQ5cxS.js",
"vendor-misc.bELTaXdf.js",
"SchemaPage.C2bnpARq.js",
"vendor-vue.BYzo-2I-.js",
"FaIcon.B3OOcphx.js",
"FaIconPicker.DHrC0Y72.js",
"shared-api.BvxssbgC.js",
"vendor-misc.buu8cFA9.js",
"level.E3ANSDAX.js",
"badge.CKTsmH1z.js",
"vendor-naive.CKYCZmXD.js",
"DeferredPage.DpQpYrho.js",
"NativeOpsRedirect.CHwEgYbu.js",
"FloatingButtonsSettings.JM4lmjpr.js",
"vendor-draggable.BooRVfGb.js",
"PageHeader.CtT29f8Y.js",
"FooterTabbarSettings.C6AggjrQ.js",
"PostPageSettings.uzxR41nA.js",
"CommentSettings.sqwcq8XD.js",
"PermissionsCapabilities.CjA3yZya.js",
"AttachmentPermissions.Dzsg-DfQ.js",
"CmsCredits.BYsXdX89.js",
"ThemeInfoPage.jxAxkM2b.js",
"ThemeAuthorizationPage.DMbNRHuq.js",
"DocsPage.mFfiXsYT.js",
"UsersVerify.ryf_AQd6.js",
"UsersLevel.BpnbcbVe.js",
"UsersBadge.DCbaumfe.js",
"UsersWechatTemplate.Dn21sVHP.js",
"PaymentGateway.DuX_0Di_.js",
"ToolsImportExport.BxEsl-fY.js",
"ToolsHealth.B1bVNkRU.js",
"ToolsUpdate.DZedmIdt.js",
"ExtensionAI.BmvoDo9B.js"
"vendor-naive.D3KCxD1U.js",
"DeferredPage.BR2FUrUF.js",
"NativeOpsRedirect.DMOc4MZt.js",
"FloatingButtonsSettings.ChAj9F5j.js",
"vendor-draggable.YNevSrwY.js",
"PageHeader.jmNZVzHG.js",
"FooterTabbarSettings.CwSsjNlJ.js",
"PostPageSettings.DZzG8fRg.js",
"CommentSettings.sUF8U6J1.js",
"PermissionsCapabilities.BeLUij9c.js",
"CmsCredits.CTDJTkG-.js",
"ThemeInfoPage.CbJKzVFa.js",
"ThemeAuthorizationPage.DqXs-wcM.js",
"DocsPage.0VHAQOLD.js",
"UsersVerify.BwpKCOcv.js",
"UsersLevel.BOBrM4ao.js",
"UsersBadge.BoxXBYpU.js",
"UsersWechatTemplate.CEr5O4Ax.js",
"ToolsImportExport.CAIX07JQ.js",
"ToolsHealth.DAW9Zcoi.js",
"ToolsUpdate.DlvVMvXs.js",
"ExtensionAI.CJ_ZQ8Tr.js"
]
}
}