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>