Commit Graph
81 Commits
Author SHA1 Message Date
kate522 6f2adfaef1 feat(float): rebuild right floating buttons 1:1 with reference theme
- Storage: aksrt_floating_buttons now uses reference float_btn shape
  (fixed 8 sortable types, more-buttons group); single source of
  defaults/sanitize in AKSRT\Settings\FloatButtons
- Admin SPA: CSF-parity page split into components/floating/*
- Frontend: aksrt_float_right() on wp_footer mirrors zib_float_right()
  (wp_is_mobile, PC tooltip, toggle-theme, ontop/scrollTopTo, qrcode,
  wechat/qq, pay_vip, add, more)
- CSS: floating-buttons.css rewritten from reference rules; legacy float
  rules removed from main/part/shell/overlay-primitives
- Remove dead code: reorder route/API, get_floating_buttons_items,
  floatingSchema, floatActionsId, float-theme-toggle bindings,
  common/floating.css, aksrt-runtime-win.php, .aksrt-float-btn
2026-09-26 20:44:50 +08:00
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 f629a4f373 feat(icons): add the FA5 catalog, REST endpoint and unified icon helpers
Mirror the reference theme's universal picker on FA5: a generated full
catalog of the bundled FA5 Free 5.15.4 fonts (src/Icons/fa5-icons.php,
generated from the shipped CSS + SVG fonts), a zibsvg group parsed from
the runtime sprite so it cannot drift, and GET /aksrt/v1/icons/catalog.

Shared admin pieces: aksrt_icon_markup()/aksrt_sanitize_icon_value()
with an SVG allowlist, the picker field/modal assets, and one canonical
aksrt-font-awesome handle registered through aksrt_enqueue_fontawesome().
2026-09-06 12:59:03 +08:00
kate522 b639d57c5b feat(widgets): replicate 12 reference widgets for full Zibll parity
- rewrite schemas for posts, tab_posts, oneline_posts, hot_posts,
  term_cards, term_aggregation, media_cards, combo_info, partners,
  recent_comments, posts_toc and slider_media_combo to mirror the
  modern reference modules field by field (options, defaults,
  dependencies, min/max/step, subheadings)
- port reference renderers: hot ranking with TOP badges, category
  aggregation card, graphic cover cards, partners CSS marquee,
  combo info cards with auto band palette, recent comment list
- rename 分类与标签聚合卡片 to 分类聚合卡片 and restrict it to
  categories (no tags/topics branch in this project)
- drop topics filter fields and the topics query branch; align
  orderby value domain with supported post meta
- add searchable sortable terms admin field type and spinner unit
  suffix rendering
- unify widget pagination and lazy loading on the REST client with
  the runtime-owned ias reveal trigger; remove the legacy
  post_ajax_trigger dual path
- align section-navs TOC with the reference contract (wznav ids,
  3-heading minimum, zib-widget box)
2026-09-05 11:28:00 +08:00
kate522 b8ef4d81a4 评论区硬切换实现 2026-08-30 17:34:29 +08:00
kate522 dbb1f776f2 修复了一些问题 2026-08-25 17:57:20 +08:00
kate522 af52f9e94d 登录注册体系的源码级硬切换 2026-08-23 20:30:01 +08:00
kate522 8d4f07656a chore(debug): 增加 ajax 调试工具定位 admin-ajax 400 "0" 来源
- assets/js/core/ajax-debug.js:ajaxSend 记录发往 admin-ajax 的
  action 与参数,ajaxError/fetch 记录失败请求的 url/status/响应
- inc/aksrt-ajax-debug.php:admin_init 时记录每个 admin-ajax 请求的
  action、是否有 wp_ajax_/wp_ajax_nopriv_ 处理器、POST 载荷至
  wp-content/aksrt-ajax-debug.log(handled=0 即 400 "0" 的来源)
- 开关:WP_DEBUG 或 URL 带 ?aksrt_ajax_debug=1(或常量 AKSRT_AJAX_DEBUG)
2026-08-22 13:39:13 +08:00
kate522 d5dfeb7102 feat(widgets): complete phase 3 atomic integration 2026-08-17 18:21:47 +08:00
kate522 6c6c462df8 refactor: remove forum and topic feature chains 2026-08-17 14:52:19 +08:00
kate522 bd7d3046a5 feat(widgets): simplify locations and paid sidebar
Remove deprecated widget locations and widgets, standardize sidebar labels, and render a compact paid-post purchase card in the article sidebar.
2026-08-14 01:49:50 +08:00
kate522 d0db910b08 fix: remove stale require of deleted aksrt-commerce helper
Phase 2 of the shop removal (1d250535) deleted inc/helpers/aksrt-commerce.php
but left the require_once in bootstrap.php, fatally breaking every page load.
The only surviving caller (page-revenue.php) already falls back gracefully.
2026-08-03 08:58:51 +08:00
kate522 8c5b1555c9 refactor: flatten src/AKSRT → src (drop theme-identifier dir)
Move all domain folders from src/AKSRT/{Domain} to src/{Domain}; remap
Composer PSR-4 "AKSRT\\": "src/"; update audit script + README + ADR
paths; remove dead tools/build-psr4-map.php (scanned deleted inc/classes).
2026-08-02 22:06:06 +08:00
kate522 2bbd7c01a3 feat: remove forum feature (Phase 1) 2026-08-02 20:02:44 +08:00
kate522 e47ee1b029 feat(user-center): deepen zibll parity and profile media 2026-07-28 12:22:52 +08:00
kate522 bcebd37807 fix(homepage): unify runtime rendering contract 2026-07-28 02:54:18 +08:00
kate522 2086f938ed feat: deepen single post experience 2026-07-28 02:07:10 +08:00
kate522 ac7ff8d4f2 feat(ip-geo): full-chain IP 归属地 on comments, user home, center, post 2026-07-25 14:39:47 +08:00
kate522 1d1fef50af feat(nav): deep 1:1 zibll search-box + navbar-search + newposts unify
Port aksrt_get_search_box/posts for menu_search and layout 1/3 slide;
unify publish switch; expand user-box admin row; CSS/JS remote-box parity.
2026-07-22 17:06:24 +08:00
kate522 159a12c481 feat(nav): deep-align menu_search panel, pill radius, senior media
- Layout-2 remote-box AJAX panel (history/hot/posts) via aksrt_menu_search
- Live suggestions for post/topic/product; local history for guests
- Publish radius switch (zibll bool pill) mapped to CSS radius class
- Senior menu editor: WP media library image picker
- Active menu underline + panel CSS; acceptance/contract updates
2026-07-22 12:51:56 +08:00
kate522 259dbdbe04 feat(nav): rewrite top header to zibll 1:1 DOM/CSS/JS contract
Replace hybrid site-nav/drawer shell with zibll navbar-top layouts 1/2/3,
body.mobile-navbar-show drawer, wired NavWalker + aksrt_menu_options meta,
nav_folding/chevron, VIP switches, and SPA/PHP schema parity. No dual-class
compat paths.
2026-07-22 11:18:34 +08:00
kate522 9c5ac01119 feat(widgets): shared forum topic/plate renderers for list depth
Extract aksrt_render_forum_topic_mini/detail and plate row/card helpers,
then wire TopicLists, PlateLists, and BoardList for zibll-aligned DOM,
lazy thumbs, and identity-aware topic rows.
2026-07-21 10:39:16 +08:00
kate522 89f2ca45c4 feat(widgets): shared aksrt_icon_card/cover helpers + obs animate map
Add zibll-parity icon-card and icon-cover-card renderers plus
aksrt_obs_animate_attrs mapping to data-aksrt-animate scroll hooks.
2026-07-21 09:22:00 +08:00
kate522 3fd02a9338 feat(widgets): shared aksrt_graphic_card + author minicard helpers
Unlock term cover cards and user-list minicards with zibll-parity
graphic (style-1..4, lazy, mask, height_scale) and author-minicard
(follow + identity chips + bio) helpers.
2026-07-21 08:54:46 +08:00
kate522 93fd6a93c2 feat(widgets): author/user card more-posts strip + ranking empty/TOP
Add shared aksrt-user-card helpers (mini list + swiper-scroll card), wire
AuthorCard/UserCard show_posts options, ranking empty state and top_badge.
2026-07-21 08:04:03 +08:00
kate522 f929cc649c feat(shell): header multifunc + window._win + float cart/VIP
Multi-type publish/VIP CTA in nav, zibll-like _win runtime bridge for
lightbox flags, and floating shop_cart/pay_vip commerce buttons.
2026-07-18 22:16:17 +08:00
kate522 c32738267f feat(header): user-box density 1:1 (check-in, wallet, VIP, signout)
Add payvip/check-in/wallet/badges strips, guest OAuth strip, confirm
signout modal + REST check-in wiring for zibll header parity.
2026-07-18 21:28:32 +08:00
kate522 c27a36faff feat(pages): 1:1 网址导航 page-links (zibll links.php)
Add WP bookmarks-based navigation page with multi-category sticky nav,
search-engine cover, front submit modal/AJAX, page meta, and styles.
2026-07-18 21:02:23 +08:00
kate522 e2587ca3a0 feat(ux): shared ajax-list/remote-modal + order review modal 1:1
Add zibll-parity AjaxList/RemoteModal engines and replace order-center
prompt() review flow with multi-dim star modal, multi-image upload,
auto-praise countdown, and REST review-modal endpoint.
2026-07-18 16:26:28 +08:00
kate522 276a2891ba feat(comments): full 1:1 zibll comment kernel for posts, forum, shop
Extract shared comment helpers (content/item/form/geo/actions), port GIF
[g=] smilies + FixedInput/moveForm UX, wire close_comments/city/quick
settings, REST comment get, and align product review chrome with zibll.
2026-07-18 15:51:47 +08:00
kate522 aaf458af1c refactor(autoload): migrate theme classes to Composer PSR-4
Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.
2026-07-17 13:29:22 +08:00
kate522 9c309b4c7f refactor(classes): split oversize modules + bootstrap hygiene
- Trait-split content-pay, vip-service, balance-service, order-repository
- Procedural split of user module into user-parts/*
- Split scripts enqueue_public into part-1b/1c; settings bulk trait
- Bootstrap: explicit notifications, widgets glob-only, home-modules init
- ADR: freeze domain placement for pay/revenue/notify boundaries
2026-07-17 11:42:29 +08:00
kate522 ce1c13b947 refactor(classes): organize inc/classes into domain folders
Move ~94 root class shells and root *-traits into domain directories
(core, auth, user, credits, content, payment/gateways, forum, shop,
sms, ai, messages, extensions, widgets, settings, admin). Update
bootstrap require paths, co-locate traits with owners, fix forum/user
relative requires, drop duplicate shop controller requires, and wire
home-modules load. Path-only; class names and init order unchanged.
2026-07-17 11:11:57 +08:00
kate522 6bd7676b73 fix(yiyan): stop invalid Hitokoto category requests
Public hitokoto v1 rejects c=hitokoto (and ignores batch count). Whitelist
categories a–l, multi-fetch for carousel, and share full markup via
aksrt_render_yiyan_block so single-post shells actually render quotes.
2026-07-17 10:33:00 +08:00
kate522 487681a6c4 feat(identity): tip QR upload, metrics engine, comment moderate caps
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.
2026-07-17 01:52:35 +08:00
kate522 8d4e94a02c feat(identity): author card, per-user tip, comment caps, task status
Author card uses configurable limit/orderby/style and self CTAs.
Tip is per-user weixin/alipay QR modal (no site-global image).
Comment action permissions honor user_caps matrix.
Free points tasks expose done_today/passive status + better comment deep link.
audit-admin-contracts errors=0.
2026-07-17 01:21:35 +08:00
kate522 1b0eed6ef7 feat(users): level integral XP schema + AKSRT_User_Level runtime
Rewrite /users/level to Zibll-like user_level_s/max/opt and
user_integral_opt. Runtime grants XP with day_max, resolves level,
hooks login/register/post/comment/like/favorite/follow. Profile
signals read integral-backed levels. audit errors=0.
2026-07-17 01:05:39 +08:00
kate522 219cd0236e feat(user): badge wear and grant service
Add AKSRT_User_Badges own/wear/grant REST and WP profile admin grant
UI, and route identity signals through the service.
2026-07-16 23:39:41 +08:00
kate522 defb64fd89 feat(single): identity chips, comment 神评, reward open from author bar
Share VIP/verify/level/badge chrome via aksrt-identity helpers on author
bar, author card, and comments; mark hot comments; open reward modal from
author actions; admin threshold for 神评; task list go-to actions.
2026-07-16 20:32:46 +08:00
kate522 a0748c08fe feat(frontend): illustrated null states and author rewards fallback
Add aksrt_get_null / widget null helpers with null.svg, use them in
sidebar widgets, comments empty, and related posts; when PM is off show
post rewards entry on the single author bar.
2026-07-16 19:33:57 +08:00
kate522 15a883eb54 feat(credits): free points tasks matrix, day cap, and tasks tab
Add AKSRT_Points_Free for catalog/day-max/daily detail, wire the full
earn matrix (login, post, like, favorite, follow, comment, forum),
expose 积分任务 + 每日详情 tabs, and expand admin free-task settings.
2026-07-16 16:29:15 +08:00
kate522 0529ab5fb9 feat(user-center): Zibll-like assets charge, transfer, and dual cards
Complete wallet/points assets surface: sidebar mini dual cards, dual
asset row, balance charge packages REST + modal, transfer search/pay,
points-to-balance exchange, and payment success credit for recharge
orders.
2026-07-16 14:53:28 +08:00
kate522 8e0f9d989d feat(user-center): add cash wallet balance separate from credits
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.
2026-07-16 13:44:37 +08:00
kate522 6c354fb086 fix(single): restore Zibll float dual-column and article chrome
Align single-post layout/visuals with Zibll: fix sidebar-over-content
float geometry (position:unset, 311px token, kill Bootstrap/container
padding and the 280px sidebar override), demote theme-box to spacing-
only, unify breadcrumb/cover/graphic utilities, and split aksrt-single
render helpers under the file-size limit.
2026-07-16 12:44:09 +08:00
kate522 8ff1408450 fix(pay): preserve order note JSON, shared coupon burn, plate free VIP cashier
- Order_Repository: status note merges into JSON as status_note instead of wiping coupon/topic_pay meta
- Extract aksrt_burn_order_coupon / aksrt_coupon_usage_exists for content + topic
- Money plate follow (incl. VIP free) always opens multi-gateway cashier for 0-order ledger
2026-07-15 13:13:02 +08:00
kate522 78d3189f8f feat(forum): P1 topic coupons, P2 plate follow gateway, cash creator revenue
- Topic_Pay: soft/hard coupon validate, payable amount, free-after-discount, paid burn
- Creator_Revenue: settle content/topic/plate_follow cash (type=order), keep shop path
- Plate VIP1/VIP2 meta + resolve_plate_follow_pay_price via aksrt_get_user_vip_level
- New AKSRT_Plate_Follow_Pay REST multi-gateway; remove Credits×100 money bypass
- Frontend: cms-download plate_follow apiKind + forum-governance money cashier bridge
2026-07-15 13:04:04 +08:00
kate522 cea22daae7 feat(forum): multi-gateway cashier for pay-visibility topics
Replace balance-only AJAX topic purchase with AKSRT_Topic_Pay REST
cashier (resource orders + Payment_Gateway), reuse cms-download modal,
and unlock on aksrt_order_paid.
2026-07-15 12:27:59 +08:00
kate522 8d31e65ccd feat(admin,forum): download logs, hidecontent, VIP tiers, users commerce
Add aksrt_download_logs workbench, zibll hidecontent alias + topic
partial-hide path, VIP1/VIP2 price matrix for topics, and users list
commerce snapshot column with deep links.
2026-07-15 11:13:48 +08:00
kate522 74bde18880 feat(admin): native paid-post sales report page
Add aksrt_pay_products under payment center for content-pay posts
(resource orders), with order aggregation and deep-link filters.
2026-07-15 10:17:27 +08:00
kate522 42acb1a630 refactor(admin): finish pay-menus modular split under 300-line shell 2026-07-15 09:56:30 +08:00