Commit Graph
7 Commits
Author SHA1 Message Date
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
kate522 93833ad381 feat(widgets): zibll-like in_affix sticky option across side modules
Add sidebar affix (data-affix) to ranking, user/author cards, main/hot/
paid/forum lists, comments, tag cloud, categories and text title with
shared sticky CSS.
2026-07-21 13:55:16 +08:00
kate522 1a92adbaf1 feat(widgets): number paginate for hot/paid/forum lists
Extend aksrt_get_ajax_number_paginate to HotPosts, PaidPosts, forum
hot/topic lists and product tabs; REST accepts number + paid filters.
2026-07-21 12:59:05 +08:00
kate522 123fb3c11c feat(widgets): forum hot/recent shared mini rows + rank style
Route hot/recent topics through aksrt_render_forum_topic_mini, add plate
filter/orderby/rank badges, and keep ajaxpager payloads consistent.
2026-07-21 10:55:32 +08:00
kate522 711cbbbd2b feat(widgets): lang switch UX, product oneline shell, forum polish
Lang switch adds inline/hide-current + admin empty; product oneline
classname/defaults; forum hot empty helper + recent plate option + CSS.
2026-07-21 10:20:08 +08:00
kate522 7f051148e4 feat(forum/shop): hot/recent topics AJAX + term lists HTML
Forum hot/recent share query_payload with load-more; topic terms
remote HTML; product oneline forces oneline style on shared list.
2026-07-20 21:58:33 +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