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
caa4e51caa
feat(widgets): search affix, mod apply, blur_bg, iframe null
...
Wire search sidebar affix, plate moderator apply entry, user-lists
REST blur_bg, and iframe empty via aksrt_get_widget_null.
2026-07-21 12:42:58 +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