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.
This commit is contained in:
2026-07-22 17:06:24 +08:00
parent 70f7ef71e1
commit 1d1fef50af
19 changed files with 980 additions and 267 deletions
+25 -26
View File
@@ -1,43 +1,42 @@
# Top nav zibll 1:1 acceptance checklist
Branch: `worktree-nav-zibll-1to1`
Branch: `worktree-nav-zibll-full-1to1`
## Desktop
- [ ] Layout 1: logo | menu | publish/VIP | theme(+lang) | user | search icon
- [ ] Layout 2: logo | menu | inline search(+hot/suggest) | CTAs | user (no search icon)
## Desktop shell
- [ ] Layout 1: logo | menu | publish/VIP | theme(+lang) | user | search icon → `.navbar-search` slide
- [ ] Layout 2: logo | menu | inline search(+remote panel) | CTAs | user (no search icon)
- [ ] Layout 3: logo | CTAs/user | menu right cluster
- [ ] Fixed `body.nav-fixed` 88px reserve; hero show-slide pull-up
- [ ] Fixed `body.nav-fixed` reserve; hero `show-slide` pull-up
- [ ] Scroll-down hide / scroll-up show
- [ ] Submenu hover + chevron; overflow folding "更多"
- [ ] Publish single vs multi; VIP hover cards gated by switches
- [ ] User box density + user-card publish type URL
- [ ] Publish single vs multi; default `jb-blue` + radius pill; VIP hover cards
- [ ] User box: check-in / wallet / badges + admin row (主题设置/模块布局/商城中心/后台)
- [ ] Header theme colors when custom enabled
- [ ] Language dropdown when i18n enabled + position header/both
- [ ] Language dropdown when i18n enabled
## menu_search / search box (zibll DOM)
- [ ] Layout-2 remote-box `action=menu_search` loads `.dropdown-menu.hover-show-con > .search-input`
- [ ] Panel contains `.search-keywords` / `.history-search` / `.relates.relates-thumb` (when enabled)
- [ ] Guest history from localStorage; trash clears
- [ ] Layout 1/3 `.navbar-search` uses full `aksrt_get_search_box(show_form=true)`
- [ ] Footer tabbar `#tabbar-search-overlay` still independent
## Mobile
- [ ] center/left header; drawer left/right/top
- [ ] `body.mobile-navbar-show` open/close + fixed-body + swipe
- [ ] `body.mobile-navbar-show` + fixed-body + swipe
- [ ] mobile menus depth 2 + user box + widgets
- [ ] posts-nav-box TOC on single posts
## Admin
- [ ] SPA image_select previews for layouts
- [ ] newposts types multi + VIP switches persist
- [ ] Appearance → Menus: icon/badge/senior visual editor saves meta
- [ ] SPA image_select layouts
- [ ] Single publish switch `header_newposts_enabled` (+ skin select jb-*)
- [ ] Appearance → Menus senior editor
- [ ] `cd assets/admin && npm run build` after schema changes
- [ ] `php tools/audit-admin-contracts.php` green
## Page/section navs
- [ ] section-navs builds `.posts-nav-lists` on `[data-nav]` pages
- [ ] page-navs enqueued on posts-navs template
## Deploy
- Admin `build/` may be gitignored — build on deploy host.
- Push branch to remote **`target`**, open PR via Gitea URL.
## Deploy notes
- Admin `build/` is gitignored — run build on deploy host.
- PR: open from branch `worktree-nav-zibll-1to1` against main on Gitea.
## Deep align (post 2a11a88)
- [ ] Layout-2 focus loads remote panel (history + hot + posts)
- [ ] Typing shows live suggestions (post/topic/product)
- [ ] Publish radius switch = pill ends
- [ ] Menus senior editor: add card + media library pick image
- [ ] Contract report: tools/nav-zibll-contract-report.txt PASS
## Contract report
- `tools/nav-zibll-contract-report.txt` should list search DOM PASS after smoke.
+6 -1
View File
@@ -1 +1,6 @@
PASS full-push deep nav contracts
PASS deep nav contracts (search-box DOM + remote menu_search + navbar-search slide + unified newposts)
- aksrt_get_search_box / aksrt_get_search_posts present
- menu_search AJAX wraps .dropdown-menu.hover-show-con > .search-input
- layout1/3 templates/parts/navbar-search.php
- header_newposts_enabled single switch; publish_btn mirrors
- user box admin row: 主题设置/模块布局/商城中心/后台