The users-interaction sidebar entry 禁封/举报 was a redirect stub; it is
now a schema-driven settings page replicating the reference theme
field-for-field:
- user_ban_s / user_report_s switches, ban_preset_reason and
ban_appeal_keys as repeatable group rows ({t}), ban_appeal_desc and
user_report_desc HTML textareas with the reference default copy, and
user_report_img_s — keys, labels, help texts, defaults and ordering
all mirrored in SchemaUsers.php and the SPA report.js schema
- UserRuntime::ban_settings()/report_settings() and
BanAppeal::settings() read the new group-array values with fallback
to the previous line/comma formats
- delete the self-built SPA queue pages (UsersBan, UsersReport,
ReportDetailDrawer, UsersMessages) that the reference theme does not
have; legacy /users/report bookmarks still redirect to the native page
- contract tests: lock the schema keys/labels, the schemaPage mount and
the deleted-file state; drop reads of removed components
- rename the users.php submenu to 举报&禁封申诉 and the page heading to
用户禁封申诉及用户举报管理
- merge report tickets and ban appeals into one Zibll-style queue:
type filter buttons (全部/禁封申诉/用户举报), status subsubsub
(全部/待处理/已批准/已拒绝), search box, sortable widefat table with
the same column set (状态/类型/提交用户/详情/提交时间/更新时间),
inline process forms and 20-per-page pagination
- report process form shows the reported target, restriction status and
an enforcement action select; appeal form offers approve/reject radios
with a message to the user
- move restriction enforcement into ReportCenter::apply_action so REST
and the native page share one implementation; add get_report_row()
- drop the old three-tab rendering (reports/appeals tabs) and fix all
notice/mail/SPA links to the merged page
The users SPA section had no ban/report menu item after the queue pages
moved to native WP admin. Add a sidebar entry under 用户&互动 that lands
on users.php?page=aksrt_user_ban via NativeOpsRedirect, and keep the
old /users/report bookmark redirect.
Remove duplicate comment, captcha, filing, and website-security configuration paths.
Move front submission verification to the captcha scene matrix and retire obsolete admin routes and components.
- P1: remove the duplicate "审核联动" (ai_moderate_background/submit)
block from the attachment permissions page; those settings live in
the "评论审核" / API content audit surfaces.
- P2: rename the "内容审核" submenu to "评论审核" (permissions domain).
- P4: remove the "下载/付费内容中心" page and its schema/route chain;
hardcode runtime policy so download always supports credit purchase
and paid content is limited to posts. Drop the now-dead
cms_features.download_credit flag and parse_slug_list helper.
Replace user_badge_dictionary textarea with structured user_medal_*
catalog (categories/items/get_type). Expand verify SPA/PHP to Zibll
apply fields. Reader derives badge.dictionary from medal catalog for
existing AKSRT_User_Badges wear/grant runtime. No dual-read of old
pipe dictionary. audit-admin-contracts: 0 errors.
Connect header_components_show_on through aksrt_header_slide_is_show with
zibll page-type matching, drop the homepage-only gate, align admin options,
apply nav color, enqueue by is_show, remove dead float-btn schema, and
consume footer_tabbar_single extend mode on post singles.
SPA shop/forum/payment/users sections now keep configuration pages only.
Operational workbenches were removed from the sidebar and loaders; legacy
hash routes open NativeOpsRedirect into the matching WP native admin page.
Admin SPA production build refreshed accordingly.
Wire existing HeroManager/BannerManager into page-display routes and
component loaders, fix banner REST round-trip (show_meta + optional title),
and retarget operator deep-links to the real slide managers.
Stop auto-running AKSRT_Settings_Migration, drop multi-option settings
merge and Zibll favicon aliases, remove the migration tools entry from
menus/schema, flatten admin sections so pages are not demoted into a
compat bag, and retire the migration-status payload for leftover SPA
routes after a full admin rebuild.
The page-display homepage menu entry was registered as a SchemaPage for
section "homepage", but PHP's page_display schema has no such section, so
GET /wp-json/aksrt/v1/settings/schema/page_display/homepage returned 404
(未知的设置分组: homepage). Point the route at HomepageSettings, which
already uses /settings/homepage like FooterSettings.