Remove profile identity chrome from the VIP header, keep the crown watermark, and flatten the summary into one thin card while preserving membership purchase cards.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Close the full circuit break in the badge/medal system and replace
empty default icons with preset SVG assets so badges render out of
the box:
- Add aksrt_get_worn_medal_icon() helper that renders the worn medal
image inline (with settings fallback when the Badges class is
unavailable).
- Profile header (UC) now shows the worn medal icon beside the name,
matching zibll's name row order (display_name → VIP → Medal → Level → Verify).
- Add .medal-icon / .aksrt-identity-medal vertical-align rules in UC shell.css.
- Extract SchemaUsers::default_medal_args() and preset 6 badges (rookie,
checkin-30, writer, popular, annual-star, vip-member) with real icon
URLs from assets/img/medal/ (medal-1/2/5/9/12/15.svg).
- Vue badge.js: add MEDAL_BASE helper + preset icons matching PHP defaults.
Per feedback the 待支付/售后 shortcut row is not wanted. Remove the nested
quick grid, delete the now-orphaned sidebar-orders renderer, and strip its
uc-order-grid CSS. 我的订单 remains a single tile in the 我的服务 grid.
The standalone order card is folded into the 我的服务 (My Services) sidebar
section: 我的订单 becomes a service-grid tile (all orders), with the
待支付/售后 quick shortcuts rendered beneath it as a compact row. Gated on
the orders dashboard tab being registered so no dead tile appears when the
payment stack is absent.
The level (等级) badge was wrapping to its own line below the username and
rendering at the intrinsic PNG size in most surfaces. Centralize the badge
sizing after zibll's `.img-icon` (height: 1.1em, inline-block) in base.css so
every route gets the same compact inline badge, and keep the name row from
flex-wrapping.
- Add shared `.aksrt-user-level-icon / .aksrt-identity-medal` rule + nowrap name
rows in base.css (loaded on all routes).
- Header dropdown: append the level icon next to the display name (was a
separate badges row); constrain the name to ellipsis so the badge never wraps.
- User center profile header & author hero: render the level icon inside the
<h1> name row; drop the duplicate level chip from the signals row.
- Single article author bar / after-box author card: nowrap the name row and
size the level icon to 1.2em (was unstyled → intrinsic PNG size).
- Comments: inner <name> nowrap with a name clamp; medal sized to 1em.
- Consolidate the per-route `.aksrt-user-level-icon` duplicates in
user-center/level.css and profile/layout.css onto the shared rule.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fix modal scroll ownership and certification modal styling, store evidence as Media Library attachments, reconcile missed provider callbacks, validate currencies, and complete digital fulfillment only after durable entitlement delivery.
Rebuild /profile layout as zibll-style user-center flex (sidebar 320px
first, content flexes). Drop content-layout float shell classes so the
stats/assets nav stays left of the credits panel on desktop and drawer
on tablet/mobile.
Drop bare .sidebar from the profile aside so site-layout float/hide no
longer stacks stats/assets under content; harden page-owned grid + drawer
selectors on uc-sidebar/page-owned only.
Close identity 1:1 gaps after p1: user-center weixin/alipay tip QR
upload+save, AKSRT_User_Metrics counters for medal get_type and level
XP bridges, forum/revenue/signin hooks, comment moderate via user_caps,
and clearer free-task deep links/status CTAs.
Add per-task CTAs (去签到 / 去完成 / 去看看) on the free points tasks list,
with sign-in proxying to the asset-card button and bbs actions gated
on forum availability.
Close the freeze/refund loop when admin rejects a balance withdrawal,
block concurrent open applications, and surface processing state plus
server-rendered withdraw history on the wallet card.
Add cash purchase of points (points_pay_s), wallet withdraw requests via
AKSRT_Withdrawal, Zibll-style dual-card layout with tabbed balance/points
ledgers, and admin switches for buy-points packages and balance withdraw.
Introduce AKSRT_Balance (user_meta aksrt_balance + balance_log) for
Zibll-like pay_balance wallet. User center assets panel shows wallet
and points; balance gateway/card-pass/refunds credit cash when enabled.
User center left nav (stats/services/commerce) stacked or hid after
content-layout lost its grid and the site float shell treated the
nested .sidebar as a widget column. Scope a CSS grid under
body.aksrt-user-center, neutralize site-layout float/hide, align the
drawer to ≤991.98, and drop the truncated #panel-credits selector.
Rewrite charge-card into typed single-use card_pass inventory with public redeem REST, user-center UI for balance/VIP, admin type-aware create/batch, and CAS mark-used fulfillment via Credits/activate_vip.
Apply vip_renew discount/reduce to same-level packages, gate renew/upgrade
availability, support dedicated vip_upgrade_product line, and show tags/CTAs.
Add AKSRT_Vip_Service (GET/POST /pay/vip), activate aksrt_vip_level/expires on
order paid, package UI in credits panel, and deep-link VIP CTA to credits tab.