Commit Graph
51 Commits
Author SHA1 Message Date
kate522 7597972eea feat(user-ban): frontend ban modal replaces the backend restrictions tab
1:1 replicate the reference theme user-ban flow on the frontend:

- Ban/unban modal rendered by inc/helpers/user-ban.php, opened via
  AksrtModalRuntime.openRemote (600px desktop dialog, 360px initial
  height, mobile bottom drawer, c-yellow colorful unban header).
- Three entry points wired: user homepage cover three-dot menu,
  comment section menu, article author card menu (ban item takes
  priority over report, matching the reference hook order).
- REST endpoints /user-ban/modal and /user-ban/set under aksrt/v1,
  guarded by check_permission, persisted through User\Restriction.
- Submit semantics match zib_ajax_set_user_ban: ban reloads the page,
  unban only closes the modal.

Cleanup (no dual-track): the backend ban-restrictions tab, its form
handlers and flash keys are removed; ticket processing links to the
frontend user homepage as the reference theme does; admin/report and
appeal notification URLs move to type/status query args.

Verification: 337/337 widget-system contract tests, 41/41 admin and
front-submit tests, php -l clean on all changed PHP files.
2026-09-20 18:42:53 +08:00
kate522 0df6e760e3 feat: full parity pass - suspend enforcement, report modal polish, wechat notify
- Restriction: add is_suspended/get_active_suspend; comment block now covers
  suspend (小黑屋) in addition to mute, with reason in the deny message
- FrontSubmitSave::persist: block post/draft/edit submission for suspended
  users (reference-theme semantics: 小黑屋 loses all publishing rights)
- report.js: close icon switched from fa-times to the SVG sprite ic-close
  (#icon-close), same as reference theme; textareas gain autoHeight growth
  (hidden 'other reason' box skips the first measurement)
- WeChatNotify: NOTIFY_TYPES now includes report/system so report results
  and account restriction notices fan out to WeChat template messages;
  generic title/description fallback for template values
- contract tests: +3 tests (suspend enforcement, modal polish, wechat types)
2026-09-20 16:09:12 +08:00
kate522 c38616b290 feat(admin): rebuild the restrictions tab on the reference ban modal
Replace the self-invented CRUD (warn/mute/suspend/ban + scope selector)
with the reference-theme ban model: ban method (blackroom suspend /
login ban), duration radios (1/7/14/30/100 days or permanent, default 7),
preset reason chips with an other-reason input, ban note, delete-all-
content switch (posts/comments to trash), and a no-appeal switch with a
required notice that also gates the frontend appeal entry. Banned users
render the status info view (status/start/end/reason) with an unban
leave-a-message form; the record list uses the reference columns and
per-user unban links. Bans notify the user in-site like the reference
zib_updata_user_ban_msg.
2026-09-20 15:48:48 +08:00
kate522 381256ed59 feat(admin): host the ban/report settings page in the SPA schema
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
2026-09-19 22:24:55 +08:00
kate522 835e0f983d feat(users): enforce real bans from report processing and fix appeal lifting
- apply_report_action now writes aksrt_user_restriction via Restriction::restrict
  and lifts via new lift_user_restriction(), replacing the display-only
  aksrt_user_ban_state meta dual-track
- ban type restrictions destroy the target user's sessions on apply
- appeal approval lifts active ban/suspend/mute restrictions instead of
  updating a nonexistent status column
- UsersBan.vue posts to /users/{id}/restrict with valid types (warn/mute/
  suspend/ban), scope and expires_at
- add comment report entry to the comment actions dropdown
- add duplicate pending report guard on submit
- remove dead ReportCenter ajax handlers, option migration, REST alias
  routes and write-only restriction meta
- fix report admin mail link to the real aksrt_user_ban page
- add report-ban contract tests
2026-09-19 21:38:56 +08:00
kate522 7cd39e278a chore(assets): remove dead icon assets and consolidate icons/
Delete zero-referenced leftovers (31 img SVGs, duplicate top-level
vip badges, favicon/icon/person_background pngs, assets/fonts/,
tmp-debug/, gutenberg-extend.js and the FA eot/ttf/svg font formats)
and give icon-purpose SVGs one home in assets/icons/ (upload-add,
default favicon/logo, playing, user-certification) with every reference
updated. Icon SVG files were audited by name across PHP/CSS/JS before
deletion.
2026-09-06 13:00:13 +08:00
kate522 4833053a5c fix(email): complete mail settings and templates 2026-09-04 12:06:42 +08:00
kate522 7308f055c7 fix(frontend): keep asset and homepage filters in DOM 2026-09-03 19:21:24 +08:00
kate522 dbb1f776f2 修复了一些问题 2026-08-25 17:57:20 +08:00
kate522 11f1c23fa7 进行了一些小优化 2026-08-25 17:02:33 +08:00
kate522 9381d1ff53 进行了一些小优化 2026-08-25 06:41:57 +08:00
kate522 4c81980804 进行了一些小优化 2026-08-25 06:30:29 +08:00
kate522 eef73ee9e7 进行了一些小优化 2026-08-25 06:20:16 +08:00
kate522 5cae5b5c93 积分与余额账务系统硬切重构 2026-08-24 15:59:11 +08:00
kate522 af52f9e94d 登录注册体系的源码级硬切换 2026-08-23 20:30:01 +08:00
kate522 42288bb0b1 perf(user): 关注结算异步化并去除冗余勋章评估 2026-08-23 15:44:56 +08:00
kate522 bb9a410ad6 用户公开主页全局采用DOM无刷新加载 2026-08-23 14:55:24 +08:00
kate522 32cda220f7 更多资料新增元信息 2026-08-23 13:09:55 +08:00
kate522 9375b1c30c refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识
- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css,
  js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img,
  fonts→assets/fonts; 删除 assets/vendor
- libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向
- 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入
  路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_*
- 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化
- 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→
  window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel,
  .zib-slider→.aksrt-slider, zib_menu_options meta 键等
- 自有 CSS 改名: legacy-utilities/compat-vars/footer shell
- admin SPA 重建; 契约测试同步(路径/断言/文件更名)
- 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用)

验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过;
契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
2026-08-22 16:16:30 +08:00
kate522 d1f700c3d1 fix(user): rebuild badge (修复蒙版被裁成中间栏的问题。) 2026-08-19 16:15:11 +08:00
kate522 d98a36b060 fix(user): rebuild badge modal ajax 2026-08-19 16:01:48 +08:00
kate522 9c827ff493 fix(user): rebuild badge modal ajax flow 2026-08-19 15:53:33 +08:00
kate522 435ee1daa7 feat(frontend): replace lazy loading with zibll lazysizes 2026-08-18 01:33:38 +08:00
kate522 b501cf4611 feat: unify invite flow with referral ref 2026-08-17 13:49:59 +08:00
kate522 d4f848197b fix: 缩小后台用户等级图标 2026-08-17 12:22:53 +08:00
kate522 0097875dc9 fix: 缩小后台用户等级图标 2026-08-17 12:18:44 +08:00
kate522 853114a9f9 fix: improve promotion tabs and referral layout 2026-08-16 21:28:02 +08:00
kate522 5b9f54f5ac fix: improve promotion tabs and referral layout 2026-08-16 20:52:15 +08:00
kate522 6dbb556d60 feat: merge promotion and earnings center 2026-08-16 19:54:12 +08:00
kate522 698a9beb74 feat: upgrade widgets and affiliate commission flow 2026-08-16 18:29:31 +08:00
kate522 8241570ca2 feat(users): govern profiles and access
Normalize fixed profile fields, profile actions, and the five-column capability matrix for comments, uploads, and downloads.
2026-08-13 00:24:54 +08:00
kate522 ce2b266890 fix(users): keep management inside center 2026-08-12 20:59:31 +08:00
kate522 bdbd85e434 fix(user): show worn badge in comments 2026-08-11 19:45:31 +08:00
kate522 51b52affae fix(user): align badge entry with medal settings 2026-08-11 19:32:52 +08:00
kate522 7cca472fe9 fix(payment): close creator income contract gaps 2026-08-07 13:30:37 +08:00
kate522 cfb0a1368c fix(user-center): close creator income review gaps 2026-08-07 13:16:10 +08:00
kate522 e20418e909 feat(payment): separate creator income settlement 2026-08-07 12:39:32 +08:00
kate522andClaude Fable 5 9e6ae32fc1 feat(payment): complete creator income center
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 10:59:58 +08:00
kate522andClaude Fable 5 ceff04ce54 feat(user-center): add dedicated creator workspace
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 17:23:31 +08:00
kate522 f2f5dcdb6c fix(user-center): keep posts sidebar label 2026-08-06 16:35:35 +08:00
kate522 2f9384f368 feat(user-center): upgrade posts panel to creator center 2026-08-06 16:24:59 +08:00
kate522andClaude Fable 5 02fcde3c84 fix(user-center): load revenue tabs without refresh
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 10:42:32 +08:00
kate522 39c92017d9 feat(user-center): merge promotion rewards into revenue 2026-08-05 23:43:16 +08:00
kate522 51274fd00a feat(user-center): promote invite into standalone 推广中心 tab
Register a dedicated `promotion` dashboard panel gated by the existing
invite switches (credits + invite reward + invite registration), and move
the invite card out of the revenue tab so 收益中心 is pure earnings/withdrawal.

- src/User/Center.php: register promotion panel; revenue no longer depends
  on invite being on
- inc/helpers/user-center-renderers/profile-promotion.php: new panel body
  hosting the existing [data-aksrt-invite] card
- profile-revenue.php: drop the invite section; aksrt-user-center.php: drop
  unused show_invite_section context, add promotion to built-in tabs + view map
- repoint invite/promotion deep-link aliases from revenue to promotion across
  tab-url builder, tab resolver, runtime tabAliases, urls.php, and the
  revenue-JS enqueue gate
- sidebar-nav.php: add 推广中心 service entry; shell.css: entry icon color;
  sidebar-creator.php: reword revenue card
- UserRuntime.php: allow promotion in configurable tabs
2026-08-05 16:45:47 +08:00
kate522andClaude Fable 5 5375ad6429 perf(modal): unify cancellable frontend modal flows
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 02:04:55 +08:00
kate522andClaude Fable 5 25ce1d8f43 refactor(badges): use modal REST routes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 00:16:39 +08:00
kate522andClaude Fable 5 34150f3358 refactor(modal): remove legacy compatibility paths
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 00:06:37 +08:00
kate522 ed19937e99 feat(badges): zibll-style badge modal with category grid, detail view, and wear UX 2026-08-04 12:46:44 +08:00
kate522 49c12b761f feat(users): merge promotion into revenue center 2026-08-03 15:38:17 +08:00
kate522 d138c05f77 feat(users): add inline promotion center 2026-08-03 13:40:54 +08:00