Commit Graph
828 Commits
Author SHA1 Message Date
kate522 81a8ed1d29 Merge pull request 'fix: 补齐身份认证服务商流程配置' (#341) from worktree-identity-form-simplify into main
Reviewed-on: CYL/wordpress-theme-aksrt#341
2026-08-01 21:16:09 +08:00
kate522andClaude Fable 5 7c9b4d1852 fix: 补齐身份认证服务商流程配置
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 21:14:06 +08:00
kate522 a1bb8ba9d2 Merge pull request 'fix: 精简身份认证申请表单' (#340) from worktree-identity-form-simplify into main
Reviewed-on: CYL/wordpress-theme-aksrt#340
2026-08-01 20:54:32 +08:00
kate522andClaude Fable 5 63705dfde0 fix: 精简身份认证申请表单
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 19:15:01 +08:00
kate522 89eb461986 Merge pull request 'Worktree cloud identity verification' (#339) from worktree-cloud-identity-verification into main
Reviewed-on: CYL/wordpress-theme-aksrt#339
2026-08-01 13:35:55 +08:00
kate522 4de67311cc feat: 接入腾讯云与阿里云实人认证 2026-08-01 13:21:21 +08:00
kate522 92e445dbd4 feat: 添加身份认证服务商配置页 2026-08-01 12:06:55 +08:00
kate522 cc33664c1b Merge pull request 'fix: 用户/作者卡片外层包裹层透明化改用 !important + :has() 兜底' (#338) from worktree-user-card-redesign into main
Reviewed-on: CYL/wordpress-theme-aksrt#338
2026-08-01 11:05:12 +08:00
kate522 bd538d7daf fix: 用户/作者卡片外层包裹层透明化改用 !important + :has() 兜底
上一版透明化规则无 !important,在暗色模式(html.dark .zib-widget 权重更高)
与首页/用户中心侧栏(homepage-fixed 后加载的同权重规则)中反被卡片绘制规则
覆盖,导致外层卡片重现。

- 透明化声明全部加 !important,确保胜过所有 .zib-widget 卡片绘制规则
- 新增 .zib-widget:has(.aksrt-user-card/.aksrt-author-card) 兜底,
  无论包裹层类名/嵌套 .is-affix 与否都能命中
2026-08-01 11:04:32 +08:00
kate522 a373fd0491 Merge pull request '重新设计用户/作者卡片小工具:消除多层卡片堆叠' (#337) from worktree-user-card-redesign into main
Reviewed-on: CYL/wordpress-theme-aksrt#337
2026-08-01 10:39:58 +08:00
kate522 0fd5848884 重新设计用户/作者卡片小工具:消除多层卡片堆叠
- WidgetUserCard/WidgetAuthorCard 内层根节点去掉重复的 zib-widget widget 类
- 用户卡片补 classname=widget_aksrt_user_card 钩子
- widget-batch5.css 新增外层 .zib-widget 包裹层透明化规则(含首页侧栏覆盖)
- 内层 .aksrt-user-card/.aksrt-author-card margin-bottom 归零,间距由外层统一
- 删除 custom-amount.css 重复的 .aksrt-user-card* 段
- 删除 sidebar.css 失效的 .widget-user-card* 死代码
- author-actions.css .user-card.author.zib-widget → .user-card.author
2026-08-01 10:38:54 +08:00
kate522 9027446bdc Merge pull request 'fix: 移除导航弹层重复认证图标' (#336) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#336
2026-07-31 12:13:49 +08:00
kate522 d9ec08bae1 fix: 移除导航弹层重复认证图标 2026-07-31 12:11:30 +08:00
kate522 f2c288d39c Merge pull request 'fix: 导航用户弹层认证图标同行' (#335) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#335
2026-07-31 12:08:42 +08:00
kate522 29ef28066e fix: 导航用户弹层认证图标同行 2026-07-31 11:54:19 +08:00
kate522 834c435cd1 Merge pull request 'fix: 恢复认证图标悬浮文案' (#334) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#334
2026-07-31 11:50:20 +08:00
kate522 3004310194 fix: 恢复认证图标悬浮文案 2026-07-31 11:48:57 +08:00
kate522 f28326589b Merge pull request 'fix: 修正后台等级图标与认证提示' (#333) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#333
2026-07-31 11:45:37 +08:00
kate522 387b9e1929 fix: 修正后台等级图标与认证提示 2026-07-31 11:36:33 +08:00
kate522 16edde7058 Merge pull request 'fix: 认证图标与用户名同行' (#332) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#332
2026-07-31 11:27:32 +08:00
kate522 d9a3685001 fix: 认证图标与用户名同行 2026-07-31 11:25:11 +08:00
kate522 d57a4270df Merge pull request 'fix: 始终展示已认证标识' (#331) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#331
2026-07-31 11:17:09 +08:00
kate522 06a03fd9cf fix: 始终展示已认证标识 2026-07-31 11:15:29 +08:00
kate522 341249b6e7 Merge pull request 'Certification flow fixed types' (#330) from certification-flow-fixed-types into main
Reviewed-on: CYL/wordpress-theme-aksrt#330
2026-07-31 11:07:16 +08:00
kate522 370ddc70d3 fix: 完善认证图标展示 2026-07-31 11:01:33 +08:00
kate522 ec63b446e8 feat: 固定个人与企业认证流程 2026-07-31 10:56:59 +08:00
kate522 b4364e63ec Merge pull request 'Worktree plan zibll widgets 1to1' (#329) from worktree-plan-zibll-widgets-1to1 into main
Reviewed-on: CYL/wordpress-theme-aksrt#329
2026-07-30 21:44:10 +08:00
kate522andClaude Fable 5 d1b44cbcd5 feat(forum/shop): phase 6 dynamic page sidebars + moderator fix
Phase 6 — forum/shop widget alignment + page-sidebar matrix + block
editor coverage:

- SetupPart1: add register_page_sidebars() replicating Zibll
  zib_page_register_sidebar() — registers page_{sidebar,top_fluid,
  top_content,bottom_content,bottom_fluid}_{ID} for pages opted in
  via the `widgets_register_container` postmeta (serialized area-key
  list), cached via wp_cache. page.php already consumes these via
  dynamic_sidebar. Assertion script
  $CLAUDE_JOB_DIR/tmp/assert-page-sidebars.php passes (opt-in
  mapping + page.php consumption + 63 registered widgets).
- WidgetForumPlateModerator: fix two fatal `obs_start()` typos
  (lines 75, 153) → ob_start() (was "call to undefined function"
  on the apply-modal and main payload paths).

Forum 9 + shop 3 widget business fields already align with Zibll
bbs/shop widget definitions (count/showposts/number, orderby
dims, style, plate filter, paginate, current_plate, tabs group);
REST routes forum-topics/forum-terms/forum-boards (WidgetAjax),
forum/frontend/widgets/topics (Forum.php),
shop/frontend/widgets/products (ShopController.php) all carry
permission_callback. WidgetProductOneline registered (line 127).
Block editor covers all 63 widgets via core/legacy-widget (WP 5.8+).
CLAUDE.md is gitignored (no in-repo inc/classes/widgets residue).

Acceptance: php -l clean; audit exit 0; SetupPart1=502 lines,
WidgetForumPlateModerator=248 lines. Phase 6 done-when marked.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 21:38:36 +08:00
kate522andClaude Fable 5 cecc1a7b5e feat(widgets): phase 5 align marketing/decoration widgets with zibll
Align the 20 marketing/decoration widgets with Zibll field defs in
widget-produck.php / widget-more.php, focusing on the field-level
drift surfaced by the 1:1 audit:

- TagCloudWidget (widget_ui_tag_cloud): orderby → name/count/term_id
  (was count default), add order ASC/DESC, expand color palette to
  all 13 Zibll c-* keys (rand/c-hui/c-blue/-2/cyan/yellow/-2/green/
  -2/purple/-2/red/-2), number cap 100, default 20.
- WidgetBookmarkLinks (widget_ui_links_lists_2): add alignment
  (''/center/right) to form+update+render wrapper.
- FriendLinksWidget: expose orderby/order selects in form (already
  whitelisted) for bookmarks mode.
- ButtonsWidget (zib_widget_ui_buttons): whitelist pc_padding/
  m_padding/pc_width/m_width (were render-only), widen pc_gap/
  m_gap cap to 60 to match Zibll.
- RecentCommentsWidget (widget_ui_new_comment): count cap 50
  (was 20), whitelist outer_keywords.
- WidgetVideoPlayer (zib_widget_ui_dplayer): scale_height cap 200
  (was 100), whitelist muted + aspect_ratio.

Remaining 14 widgets (PricingPlans/Reviews/Faq/Stats/Highlights/
FeatureIntro/TiltCases/IconCards/IconCoverCards/CoverCards/
ComboInfo/PartnersScroll/TextTitle/Iframe) already match Zibll
field semantics (JSON/native group + obs_animation/palette/
pc_row·m_row/go_link); no drift to fix.

Acceptance: php -l clean on all changed files; audit exit 0;
all 21 widget files <=360 lines. Phase 5 done-when marked.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 21:27:58 +08:00
kate522andClaude Fable 5 bfc4514476 chore(assets): migrate zibll img resources to assets/img
Copy Zibll's widget/visual reference assets into assets/img for
1:1 replication (Phase 5 resource migration):
- slider-bg.jpg, slider-layer-1.png, slider-layer-2.png
- user_t.jpg, avatar-default.png
- null*.svg (null, null-2, null-cap, null-love, null-money,
  null-order, null-post, null-search, null-set, null-user)
- thumbnail*.svg (thumbnail, thumbnail-lg, thumbnail-sm,
  thumbnail-null)
- medal/ (31 medal-*.svg badges)

These are reference placeholders to be progressively replaced;
no CSF framework ported. user-level-1..10.png already present.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 21:18:56 +08:00
kate522andClaude Fable 5 aa098fe870 feat(widgets): phase 4 align user/author/slider widgets 1:1 with zibll
Align the 5 user/author/slider widgets with Zibll CSF widget
definitions in widget-user.php / widget-slider.php and
options-module.php (add_slider / slide / zib_palette):

- WidgetUserCard (widget_ui_user): add Zibll button palettes
  (button_1_class/button_2_class via new palette_opts()/
  sanitize_palette() replicating CFS_Module::zib_palette c/b/jb)
  and button_2 type (home/center) → profile/center URL.
- WidgetAuthorCard (widget_ui_avatar): add show_button +
  button_1/button_2 (class/text/type) rendered only when the
  logged-in viewer is the author (zibll parity); expand orderby
  to modified/like/favorite.
- WidgetUserRanking (zib_widget_ui_user_ranking): rename field
  to Zibll `orderby` (default checkin_all_day) with the exact
  4 dims (checkin_all_day/checkin_continuous_day/points→credits
  /followed-user-count→followers) + `number` (was count); keep
  rank_by/count aliases for legacy instances; reword desc
  options to match Zibll labels.
- WidgetSlider (zib_widget_ui_slider): add direction/speed/
  spacebetween/scale_height+scale/autoplay to form+update+render,
  pass through to aksrt_render_slider (effect/loop/button/
  pagination/pc·m_height/interval already present); widen
  interval min to 0, height default to 400 (zibll pc_height).
- aksrt_user_card_query_posts: support like/favorite orderby
  (meta _aksrt_like_count / _aksrt_favorite_count) so the
  author/user-card more-posts strip honors the expanded orderby.

Acceptance: php -l clean on all changed files; audit exit 0;
all widget files <=383 lines. Phase 4 done-when marked.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 21:16:55 +08:00
kate522andClaude Fable 5 3595ccbb44 feat(widgets): phase 3 align post widgets 1:1 with zibll fields
Align the 7 post/card widget business fields with the Zibll
CSF widget definitions in widget-posts.php:

- WidgetMainPosts/TabPostsWidget/WidgetOnelinePosts: add Zibll
  `order` (asc/desc) to build_query_args, form, update, REST
  payload and query strings; fix load_mode reading $instance in
  query_payload/widget().
- HotPostsWidget: add `target_blank` (form+update+REST+render
  href target), wire into query_payload base_qs.
- WidgetTermCards: expand range caps to match Zibll spinners —
  pc_row/m_row 1..12, height_scale 20..300, mask_opacity 0..90
  (form+update+render+REST).
- WidgetTermAggregation: add `order` (asc/desc) + `favorite`/
  `rand` orderby, expand count 1..20, fix `like` meta key to
  `_aksrt_like_count` (form+update+render+REST).
- WidgetAjax: propagate target_blank (hot-posts), order + caps
  (term-cards/term-aggregation) through REST instances.
- Fix WidgetMainPosts query_payload/widget() using $new_instance
  (undefined) instead of $instance for load_mode.

AKSRT pay_type (reading/download/gallery/video/vip/any) is the
semantic equivalent of Zibll zibpay_type (1/2/5/6).

Acceptance: php -l clean on all 7 files; audit-admin-contracts
exit 0; all files <=487 lines. Phase 3 done-when marked.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 21:07:38 +08:00
Claude d975ff4ce6 feat(phase2): shared common-form layer + CommonWidgetFields trait for all widgets
- Extract Zibll CSF_Widget::params() common-field parity into
  inc/modules/widget-common.php (required by widgets-register.php to keep
  both files <1000 lines): subtitle, title_style(simple/big), title_highlight
  +color, title_link x3, title_link_style colors, sidebar_affix, show_type
  (all/only_pc/only_sm), show_id_type(show/hide), show_ids, animation_in,
  animation_repeat, layout_pin_pc/m, layout_bg(white/dark). Adds
  normalize_link/normalize_bg helpers, affix_attrs, common_wrapper_attr,
  render_title, animation_class. Back-compat normalizes legacy tokens
  (in_affix->sidebar_affix, pc/only_pc, include/exclude->show/hide).
- Add src/AKSRT/Widgets/Traits/CommonWidgetFields.php trait
  (render_common_form_section + update_common_fields).
- Wire all 57 widgets to use the trait; migrate the 16 hand-rolled in_affix
  implementations to shared sidebar_affix (fixes 6 latent bugs where
  in_affix was never persisted). SearchWidget intentionally skips the shared
  form section (its business show_type collides) but adopts the affix helper.
- widget_display_callback parity verified via tmp assertion script.

Refs .specs/plans/zibll-widgets-1to1.md Phase 2 (US1/US5)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 20:42:46 +08:00
Claude 98aeee3cc1 fix(phase1): backfill pagination, fix card stacking, unify archive render
- Backfill aksrt_render_pagination() into inc/helpers/aksrt-template-tags.php
  (numbered + load_more/infinite branches, \AKSRT\Settings\Settings facade)
- post-card.css: drop display:block !important from base .posts-item so
  .posts-item.card inline-block 3-col grid wins; scope <posts> block forcing
- archive-resources.php: replace hand-written .posts-row.ajaxpager +
  get_template_part loop with aksrt_render_post_list() + aksrt_render_pagination()

Refs .specs/plans/zibll-widgets-1to1.md Phase 1 (US2/US3/US5)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 19:05:43 +08:00
kate522andClaude Fable 5 5061977b72 plan: zibll widgets 1:1 replication
6-phase vertical-slice plan for full 1:1 replication of the Zibll
widget system into AKSRT. Covers pagination fatal fix, card-stacking
CSS fix, unified renderer, shared common-form layer adoption, and
per-category widget alignment (posts/users/slider/marketing/forum/shop)
plus resource migration and registration/block-editor parity.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 18:56:16 +08:00
kate522 59e550fd27 Merge pull request 'fix(ui): render user level icon inline beside the name' (#328) from fix/level-icon-inline into main
Reviewed-on: CYL/wordpress-theme-aksrt#328
2026-07-30 18:20:16 +08:00
Claude 4325ce0c1c fix(ui): render user level icon inline beside the name
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>
2026-07-30 18:13:41 +08:00
kate522 bdb01fa4a2 Merge pull request 'fix(user): accept core avatar hook payload' (#327) from worktree-fix-avatar-hook-user-type into main
Reviewed-on: CYL/wordpress-theme-aksrt#327
2026-07-30 11:06:20 +08:00
kate522 d5be2879d0 fix(user): accept core avatar hook payload 2026-07-30 11:05:25 +08:00
kate522 36ef332253 Merge pull request 'Worktree user level full chain' (#326) from worktree-user-level-full-chain into main
Reviewed-on: CYL/wordpress-theme-aksrt#326
2026-07-30 10:34:35 +08:00
kate522 d4946ee554 fix(user): close level parity gaps 2026-07-30 10:21:48 +08:00
kate522 a57b44bd61 fix(user): serialize level experience awards 2026-07-30 09:44:32 +08:00
kate522 20c19dfe31 feat(user): complete growth level chain 2026-07-30 09:38:45 +08:00
kate522 b2e6045117 Merge pull request 'fix(user): move avatar upload to hover overlay' (#325) from worktree-user-avatar-system into main
Reviewed-on: CYL/wordpress-theme-aksrt#325
2026-07-29 14:34:47 +08:00
kate522 eed75d9f15 fix(user): move avatar upload to hover overlay 2026-07-29 14:17:52 +08:00
kate522 0463efee8e Merge pull request 'fix(user): normalize default avatar filename' (#324) from worktree-user-avatar-system into main
Reviewed-on: CYL/wordpress-theme-aksrt#324
2026-07-29 13:58:33 +08:00
kate522 224691e709 fix(user): normalize default avatar filename 2026-07-29 13:53:59 +08:00
kate522 cf62eee95d Merge pull request 'Worktree user avatar system' (#323) from worktree-user-avatar-system into main
Reviewed-on: CYL/wordpress-theme-aksrt#323
2026-07-29 13:50:00 +08:00
kate522 eeabe1d384 fix(user): harden native avatar uploads 2026-07-29 13:39:02 +08:00
kate522 e94437ef60 feat(user): add local avatar management flow 2026-07-29 13:35:17 +08:00