From 2a11a889c3cc290408dfdbe74fb9cdddda1022bd Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Jul 2026 12:04:44 +0800 Subject: [PATCH] feat(nav): finish remaining parity gaps (image_select, AJAX search, senior UI) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Layout image_select previews (zibll PNGs under assets/images/header-layout) - Localize aksrtAdminData.themeUri for admin SPA asset URLs - Layout-2 inline search AJAX suggestions via aksrt_search_suggestions - Appearance→Menus visual senior submenu editor (cards/columns) - Acceptance checklist + automated source contract report --- .../images/header-layout/header_layout_1.png | Bin 0 -> 21733 bytes .../images/header-layout/header_layout_2.png | Bin 0 -> 21763 bytes .../images/header-layout/header_layout_3.png | Bin 0 -> 21660 bytes .../mobile_header_layout_center.png | Bin 0 -> 19180 bytes .../mobile_header_layout_left.png | Bin 0 -> 18804 bytes .../src/schema/sections/page-display/index.js | 26 +- assets/css/frontend/nav/zib-utilities.css | 32 +++ .../images/header-layout/header_layout_1.png | Bin 0 -> 21733 bytes .../images/header-layout/header_layout_2.png | Bin 0 -> 21763 bytes .../images/header-layout/header_layout_3.png | Bin 0 -> 21660 bytes .../mobile_header_layout_center.png | Bin 0 -> 19180 bytes .../mobile_header_layout_left.png | Bin 0 -> 18804 bytes assets/js/admin-nav-menu-senior.js | 243 ++++++++++++++++++ assets/js/header-inline-search.js | 140 ++++++++++ src/AKSRT/Admin/Admin.php | 1 + src/AKSRT/Admin/NavMenuOptions.php | 18 ++ src/AKSRT/Admin/Schema/SchemaPageDisplay.php | 31 ++- src/AKSRT/Core/ScriptsPart1b.php | 14 +- tools/nav-zibll-acceptance.md | 35 +++ tools/nav-zibll-contract-report.txt | 1 + 20 files changed, 522 insertions(+), 19 deletions(-) create mode 100644 assets/admin/public/images/header-layout/header_layout_1.png create mode 100644 assets/admin/public/images/header-layout/header_layout_2.png create mode 100644 assets/admin/public/images/header-layout/header_layout_3.png create mode 100644 assets/admin/public/images/header-layout/mobile_header_layout_center.png create mode 100644 assets/admin/public/images/header-layout/mobile_header_layout_left.png create mode 100644 assets/images/header-layout/header_layout_1.png create mode 100644 assets/images/header-layout/header_layout_2.png create mode 100644 assets/images/header-layout/header_layout_3.png create mode 100644 assets/images/header-layout/mobile_header_layout_center.png create mode 100644 assets/images/header-layout/mobile_header_layout_left.png create mode 100644 assets/js/admin-nav-menu-senior.js create mode 100644 assets/js/header-inline-search.js create mode 100644 tools/nav-zibll-acceptance.md create mode 100644 tools/nav-zibll-contract-report.txt diff --git a/assets/admin/public/images/header-layout/header_layout_1.png b/assets/admin/public/images/header-layout/header_layout_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6a029402c67343911a46cf65aa0c3e3d3be36a GIT binary patch literal 21733 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 V9C>3O7z~ZEx4>GUzW)Jl{{`Pk)vN#j literal 0 HcmV?d00001 diff --git a/assets/admin/public/images/header-layout/header_layout_2.png b/assets/admin/public/images/header-layout/header_layout_2.png new file mode 100644 index 0000000000000000000000000000000000000000..71b6392683005748c3ea99dd2c943be5ecc99858 GIT binary patch literal 21763 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 I`v<)J7l;AeApigX literal 0 HcmV?d00001 diff --git a/assets/admin/public/images/header-layout/header_layout_3.png b/assets/admin/public/images/header-layout/header_layout_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ecec00208691e68b11d8da8464e76ac031c73e88 GIT binary patch literal 21660 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 literal 0 HcmV?d00001 diff --git a/assets/admin/public/images/header-layout/mobile_header_layout_center.png b/assets/admin/public/images/header-layout/mobile_header_layout_center.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7d68c3fdb43316d98b353d178cbf6d3ee9bcd1 GIT binary patch literal 19180 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 literal 0 HcmV?d00001 diff --git a/assets/admin/public/images/header-layout/mobile_header_layout_left.png b/assets/admin/public/images/header-layout/mobile_header_layout_left.png new file mode 100644 index 0000000000000000000000000000000000000000..3574ccc1e14515f1a99360d0495a84e3a27de2f6 GIT binary patch literal 18804 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 K2;)EekADFpnHzrq literal 0 HcmV?d00001 diff --git a/assets/admin/src/schema/sections/page-display/index.js b/assets/admin/src/schema/sections/page-display/index.js index 659a813a..a999be28 100644 --- a/assets/admin/src/schema/sections/page-display/index.js +++ b/assets/admin/src/schema/sections/page-display/index.js @@ -3,6 +3,14 @@ * Each key corresponds to a sub-page under the "页面&显示" section. */ +/** Theme asset base for layout previews (admin SPA). */ +function themeAsset(path) { + const base = (typeof window !== 'undefined' && window.aksrtAdminData && window.aksrtAdminData.themeUri) + ? String(window.aksrtAdminData.themeUri).replace(/\/$/, '') + : '' + return base ? `${base}/${path.replace(/^\//, '')}` : path +} + /** Homepage sort options — keep in sync with AKSRT_Settings_Home_Cms::homepage_allowed_sorts() */ const sortOptions = [ { label: '最近更新', value: 'modified' }, @@ -79,23 +87,23 @@ export const pageDisplaySchemas = { { key: 'header_layout', label: '电脑端布局', - type: 'radio', - default: '2', + type: 'image_select', + default: '1', options: [ - { label: '布局 1(经典)', value: '1' }, - { label: '布局 2(内联搜索)', value: '2' }, - { label: '布局 3(紧凑)', value: '3' }, + { label: '布局 1(经典)', value: '1', image: themeAsset('assets/images/header-layout/header_layout_1.png') }, + { label: '布局 2(内联搜索)', value: '2', image: themeAsset('assets/images/header-layout/header_layout_2.png') }, + { label: '布局 3(紧凑)', value: '3', image: themeAsset('assets/images/header-layout/header_layout_3.png') }, ], - help: '不同布局切换导航 DOM 结构', + help: '不同布局切换导航 DOM 结构(与 zibll image_select 一致)', }, { key: 'mobile_header_layout', label: '移动端布局', - type: 'radio', + type: 'image_select', default: 'center', options: [ - { label: '居中(含搜索按钮)', value: 'center' }, - { label: '靠左', value: 'left' }, + { label: '居中(含搜索按钮)', value: 'center', image: themeAsset('assets/images/header-layout/mobile_header_layout_center.png') }, + { label: '靠左', value: 'left', image: themeAsset('assets/images/header-layout/mobile_header_layout_left.png') }, ], }, { diff --git a/assets/css/frontend/nav/zib-utilities.css b/assets/css/frontend/nav/zib-utilities.css index 2f2ed681..ba3d1e3c 100644 --- a/assets/css/frontend/nav/zib-utilities.css +++ b/assets/css/frontend/nav/zib-utilities.css @@ -130,3 +130,35 @@ body.mobile-navbar-show { overflow: hidden; } border-radius: 0; z-index: 998; } + +.navbar-inline-search-panel { + position: absolute; + left: 0; + top: calc(100% + 8px); + min-width: 280px; + max-width: 360px; + padding: 12px; + background: var(--main-bg-color, #fff); + border-radius: var(--main-radius, 8px); + box-shadow: 0 8px 24px rgba(0,0,0,.12); + z-index: 1002; + display: none; +} +.navbar-form .form-group:hover .navbar-inline-search-panel, +.navbar-form .form-group:focus-within .navbar-inline-search-panel, +.navbar-inline-search-panel.is-open { + display: block; + visibility: visible; +} +.navbar-inline-search-suggest__item { + display: flex; + flex-direction: column; + padding: 6px 4px; + color: inherit; + text-decoration: none; +} +.navbar-inline-search-suggest__item:hover { color: var(--focus-color); } +.navbar-inline-search-hots .but { margin: 0 4px 4px 0; } +.aksrt-sme-field { display: block; margin: 4px 0; } +.aksrt-sme-field span { display: block; font-size: 12px; color: #646970; } +.aksrt-sme-card, .aksrt-sme-col { border: 1px solid #dcdcde; padding: 8px; margin: 8px 0; border-radius: 4px; } diff --git a/assets/images/header-layout/header_layout_1.png b/assets/images/header-layout/header_layout_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6a029402c67343911a46cf65aa0c3e3d3be36a GIT binary patch literal 21733 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 V9C>3O7z~ZEx4>GUzW)Jl{{`Pk)vN#j literal 0 HcmV?d00001 diff --git a/assets/images/header-layout/header_layout_2.png b/assets/images/header-layout/header_layout_2.png new file mode 100644 index 0000000000000000000000000000000000000000..71b6392683005748c3ea99dd2c943be5ecc99858 GIT binary patch literal 21763 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 I`v<)J7l;AeApigX literal 0 HcmV?d00001 diff --git a/assets/images/header-layout/header_layout_3.png b/assets/images/header-layout/header_layout_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ecec00208691e68b11d8da8464e76ac031c73e88 GIT binary patch literal 21660 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 literal 0 HcmV?d00001 diff --git a/assets/images/header-layout/mobile_header_layout_center.png b/assets/images/header-layout/mobile_header_layout_center.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7d68c3fdb43316d98b353d178cbf6d3ee9bcd1 GIT binary patch literal 19180 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 literal 0 HcmV?d00001 diff --git a/assets/images/header-layout/mobile_header_layout_left.png b/assets/images/header-layout/mobile_header_layout_left.png new file mode 100644 index 0000000000000000000000000000000000000000..3574ccc1e14515f1a99360d0495a84e3a27de2f6 GIT binary patch literal 18804 zcmeI3c{o(>`^S&1P?nSwl`-N|F=nw(3|TUY$TE#Kjait?mKn<^(xx3HNtP5PHMA*G zmX8*d?L$$atdT8SlA^vdR7a}sZ@$;>`}^m2&2gD?d!F}w-{*Nf_w&p-uIn6hUSlUG zt11fsfSf(n#svVxbojQZ^fdk_qf9P}f0AKgJ=g%Crz!Xq3p#HR006R%RBLNzXCEeq z$@XEgAokYQ5SAa4LZy)bAgDIcH4q;?JQve2Ojf{Iz396ZOWOrNHF?sH6g|!<9tQ|} z6_qR>>^mTfo1;7{0qcH$ceN}w@j!F(k{s_9hYqYi?7q?DoqB!R&5+>Uo}SOoKi_Rn zXdf--Rw#tcQqn%wc5W+R>ax!a{X#v`348x>UYNKtwowwI*j7^HE%g8Z`XsnPp`5E0 zqheQ>fH=Ua)?2Jp-1K!%uCw+!0CEgygetYq5Q}mF9_hI~ngcwV2V8Z%L6QYd0051< z!wL#qk^{Qm+he4F7wOUUD!_|#3(}>5qhdhZ61&CXmUn!c#S4poWS%8dPqHvm zEX?B;%1%5iPYMW#z(*-qZUMsLtaM8Oh>190y=Zos1jIoi8BtZxnC{8imxC1p3QJTMuud!L9xrlbnilDMoks{LyO^A)xoQ-Xla44S%0IDOEe}6Hth-zmN0 zuaik$FZ)mM$YHL@sO6%hv(Asq7A}yTF{4Mz>uesP5{xLxy0@xGm75lbtZ4X$m}RX)^@KbYeTbu8xIb~$FF z@i?YgsbeRqU;X5mOmv_ezzcUOTytys%@SH+=sPj-!}9p50KhVI5Ozd$#xX$A+W^HK z27u^-kw{A&F`z6qwFLm~zMZ%6;t3UphtdFGle}x$)fLlc{ym3RD4+26!n=hk;)H27 zmNOR@nkiaMYYkf*z$~wb7tnHPmAD8=C;@A5JS-K`abV6`=z~Xosp9EYTaRtRY7W5s z=9nJcX!$9s?hyoaX!OusJLHL7*Vjrs6Zf~geNkQY(8FYQCC5NvQ`pIKzLlz3i_F7r zolC1+{nnoYgdB<>hE*cvDMwxsHXhk;yX7EWRl9gD@eSS(7imabh&K*URx3;*^hz%l zKO8o@TYB?e#Uk47s3<$U1K#?gR<~xBQm*tmnLT@vMSnq~FFIvu1uKo*5As4^i^8wu zX}{B0q>-ex`7im|p3&IF@{fsIOO zVLV9evFs>?D5v9}AKz=uo`ZgHpxHs@++vs16H2QL$rf)U&!0hA#U)=_Tb7>mO#0FR z^qKYc^yC0%xaT9>54QmX$sP4%V@`@lOmxiYWzEV7OLC$`G>?evcJ zjy>-KXUc`k?J353Et&5-fBXEjdD-*faSj)xp2o&Kazi{vsl|DpQaHtQ$1nS^Y=`o( zCrUBs7+g$fO#3A_cecAlHTTjCx6AGdmp9`=F06FF;oOog^K9hy)~chZeA%UuFp zBAqMNdZy%ij_v+Ll)E0jZ)I{gHpPvY{c!$Kjkym|eW4wHacz^>J7&7fq2W*FB7 z*XGxH_4xJ7?dhuR^=BnoCh8^*q3P&hf0&P z!n8WUH;It{@^0Pe(S7G_6CSKOY;?HzWbMfvB~m9HPY&}=;V?KZZV30BXJ50iOSg+& zvySGhwl02VJUYJQ*2RqYjQauc^oBXjb0U{kEgf=Y)FQh_yJfpicTejv{XqDj^@0AO zVqxh5rG+)iIm>tWar{dIXso+ksZ9p=((k9=>saTl=6#l(IB2MHVRclAQfxr1iYqj?_Ke}Zy4Xat+XXE zEk3PiFsdECIbgHL=FfSHoNgp&C)FV6kLvDkXv{0wz6FgjCx0sMkia~|h@S~Qvp@er zKD5C+Uo*5OG%j@dXwv89pGw9eKNd7`2j=##k=i2mx7Zu8yj`lhZb!>)g(-$41&IifjZ_uL(MQCFRFuHJZ&6Xem~2raO^GgtGlt4g3Aa+6Cg zDTvxv6;k3;a{c6(b2Hw>ePAoMejvhSPu2PJ);hb_8N{TYcwEBBe82uSQJD}!a_`+5 zTfG6dbD2tvCy&LunECPQ%AB_5b!$AUcMNgqwY9HTWk2cZ!gi&0F?hos1y@$(ZCz3Q zPk5hPhFbs8H)@{rRj)Z`gSQSvlx3AYDU&cH81`%^y~V2=IBS&hAvkg8rV`v(#^vn% zm)f;81+N0P56bUZsJ#4j?}_faH+6#6`R3V%3^A(S?S2)h>ZO)j&=&eC$1c$6K~m)Q z^V_F?uB*{P6ys(tzRZzwBpU*e>Gg#vAxCl z?b-5s_4mpe;&x^aNq1qnI#uWbe;zD_o@{>fN=r&yV`2U*uAV#WFdFB(Y3-&wZ|jOA3l+{ghiuQ`$AhoiBRBQk zWxaS}VTc>|>K=%%#mX|pSygyOz(yV#f8 z8^)SHudcw4zUZ4Va=4-(lbb&1*Lykr3c6UcSp9A}*S!D2XhwNmNN-MWZbNaNdfbvx z%P-D@m7j>kY5zD4W7>Co8HEq;9sI0Sbw(cmmS<4i@Ep9O1DeRB>k&vyFS1?`oyETm z1pqUPAQpk>OXfhl$lg?jIkfjq0TeWA=XSkGQ?2N2u4I0 z8AFUs^^k_f#sgP%ltlkLl+PN1B?N!VxGq3I*dUU~DdfLkNN~*qReTzQ?g4vx$CG7Kh4Y zKm>6KUQBLK8NaB_6~_il9hZ#~%@+W`KR zd>h$s6SCd7EHd1M%x3!g5y`dzWClm`cNf9>{v7f9a6h{LI0_Q+hbPP5k2VgNM1+%R zWI8`5o9~DG?HD*z3OG4G4MEWJ$8_W%>L1($Jri!@r7$r=X8ig?Tl4he@JRxI#q%l|RRDbVS=T*c<|bNVd1Z@W-x4 zrIOG{V|_yd0tyN9GBP%S8KB69FjJ%v31);eH84gQlE_FhVSJE3yZ;i}hDr1nR02Qr z#L_1*iTv(;MZ9lhu@1Rk~_YfArk4+XVO>^k?wfSSy`LU-6e8!hJnm`on zJ{Y2)fXO5?_)o3iW&QB{=0^Q>I)y_p5r2~VpK}EIkQx83{3k+&7^Pw34Y`i z-uwy?Zf#D){n>G90yDT^zot?D52k`m2>9PkgmCNX|H(vvl}z*@Fuchm4E%c$e{T?O z?j~mR=hgLnQ}}f?nt{8E8###MK;V-7*gqG;_-eHxc>mlgxZa7<`Oj7>m~TAS8Ume+ zf$(=df5FQ9!`Te}JFlrY1XnagCm7Oy9(~+vYV_YPl!?}#;Y_~T-!h$amDWre)6bDf zB4hL?yMfK%WlZwo{~yzN;@_AUwu_w=#NO7L|6OBb1ViZ|Cx@A&n-qscL{pf4bOHxM zr4zi#a2CVc3=TFLU0cBTfAX?PndzfReL zZyS`U={KjTJ-_wz06h(jCp%8+_~tlKSd;Fn$5-D(EB~&Y|G)tM@x<`U!W1l}|M~%r z=)WEs3@AzhvJk=&;SvH8C=uZTSqNc?a0vkkl!$PFEQGK`xP*WNN<_Fo7D8AeTtYws zB_doP3n45KE+HU+5)m$tg%Fkqmk^LZi3k_SLI_KQO9)7yM1%`uA%rEuB?Kf;BEki- z5W*7S5&{w^5#a(^2w{nE2>}U|h;V@{gs?=ogn$G}M7Tf}LRcbPLO=o~B3vK~AuJIt zAs~Sg5iXF05S9p+5RgEL2p7mg2up-Z2uPqrgbQRLgeAfy1SC)*!UeJr!V=*U0um?@ z;R0C*VTo`F0ST0daDgm@utd0ofCNfJxIh*{SpOE6EcgyCnZbYYHjw{@ZCI$iAOG!K z2odYz2mrxa01&nZ07ky@&m92Zj{tzqEdYQ%1pq3{iJ8}d9ghK+jru}b}Ru9a*_fmK}sN1 z#0h*LJm84)G5@TVwN`ZxE1Dq9V{y`k=WI1P6E3o$H3JubqGb}jTHOK7fy&G2fqYVwWQiSk=l|F2janvLf6x>!FbkwZ9b?!!-kHG5t75>#(S60W^ZV}t-UgbRU(WD?ORH3)!hHE$^Y*x6tbaVWL283w_ zQHJgd6m=$bct%jyXKn+`!n5w|(!hTF^u)D4;h{^r&D)z&^|YJowL)G8=Y@_wS(YFl z(xz046Zc(Lxa95m?Gj&a8s;xE!&tO52bOcYcj%!L2efznUPU^U23F^*owCR<@s+A4p18AX&jO9c7vcz6`#_1Y&)d6Q zV+IwL$Re4{yY`Lta@W;Nu+e6!gJLOB2E6dMhPFF(!mf5^>JDaVq(4N8jdJ;3)$7-` zH-DYp_GnqVP24o`!1+ClWSo0a=dyM@FfEp2>}=y@aXI&0UT)PTr5kufTw$~t#kkL{ z|I|xf!zQ$E%REVCgz8w9;VoS0j@K2{9uMz(-@r*J;_PL0+nWtw!~6+N zm(Y3Ou>`hyx9q%Yui>WE*XM+U^aN-Q_HI3-7AID;%xR2b@Yr%UMv#5h;DA7umuVu=^y7f9Guaemnps{0RB?kj|$0Hvq$ zWzu@#)rJ{rKo}JQRubQ%FDzdS0KR^e09sZ_FaJcqTk@9!U~jv|Cev!mZaADsX8TZm K2;)EekADFpnHzrq literal 0 HcmV?d00001 diff --git a/assets/js/admin-nav-menu-senior.js b/assets/js/admin-nav-menu-senior.js new file mode 100644 index 00000000..a6dadc76 --- /dev/null +++ b/assets/js/admin-nav-menu-senior.js @@ -0,0 +1,243 @@ +/** + * Nav menu senior submenu visual editors (graphic cards / multi-column). + * Enhances WP Appearance → Menus fields for aksrt_menu_options JSON. + * + * @package AKSRT + */ +(function ($) { + 'use strict'; + + function parseJSON(raw, fallback) { + try { + var data = JSON.parse(raw || ''); + return data && typeof data === 'object' ? data : fallback; + } catch (e) { + return fallback; + } + } + + function graphicTemplate() { + return { + arrangement: '', + size: 'md', + img_scale: 100, + items: [{ img: '', title: '', badge: '', badge_class: 'jb-red', link: { url: '', text: '', target: '' } }], + }; + } + + function multiTemplate() { + return { + columns: [ + { + title: '', + icon: '', + img_icon: '', + link: { url: '', text: '', target: '' }, + items: [{ title: '', icon: '', img_icon: '', link: { url: '', text: '', target: '' } }], + }, + ], + }; + } + + function field(name, label, value, type) { + type = type || 'text'; + return ( + '' + ); + } + + function renderGraphicUI($wrap, data) { + var html = '
'; + html += ''; + html += '
'; + (data.items || []).forEach(function (item, i) { + html += '
'; + html += '
卡片 #' + (i + 1) + ''; + html += '
'; + html += field('img', '图片 URL', item.img || ''); + html += field('title', '标题', item.title || ''); + html += field('badge', '徽章', item.badge || ''); + html += field('badge_class', '徽章 class', item.badge_class || ''); + html += field('link.url', '链接', (item.link && item.link.url) || ''); + html += '
'; + }); + html += '
'; + html += field('size', '尺寸 sm/md/lg/xs', data.size || 'md'); + html += field('img_scale', '图片比例%', data.img_scale || 100, 'number'); + $wrap.html(html); + } + + function renderMultiUI($wrap, data) { + var html = '
'; + html += ''; + html += '
'; + (data.columns || []).forEach(function (col, i) { + html += '
'; + html += '
栏目 #' + (i + 1) + ''; + html += '
'; + html += field('title', '栏目标题', col.title || ''); + html += field('icon', '图标 class', col.icon || ''); + html += field('link.url', '栏目链接', (col.link && col.link.url) || ''); + html += '
'; + (col.items || []).forEach(function (item, j) { + html += '
'; + html += field('items.' + j + '.title', '链接标题', item.title || ''); + html += field('items.' + j + '.link.url', '链接 URL', (item.link && item.link.url) || ''); + html += field('items.' + j + '.icon', '图标', item.icon || ''); + html += '
'; + }); + html += ''; + html += '
'; + }); + html += '
'; + $wrap.html(html); + } + + function readGraphic($wrap) { + var data = graphicTemplate(); + data.size = $wrap.find('[data-name="size"]').val() || 'md'; + data.img_scale = parseInt($wrap.find('[data-name="img_scale"]').val(), 10) || 100; + data.items = []; + $wrap.find('.aksrt-sme-card').each(function () { + var $c = $(this); + data.items.push({ + img: $c.find('[data-name="img"]').val() || '', + title: $c.find('[data-name="title"]').val() || '', + badge: $c.find('[data-name="badge"]').val() || '', + badge_class: $c.find('[data-name="badge_class"]').val() || '', + link: { url: $c.find('[data-name="link.url"]').val() || '', text: '', target: '' }, + }); + }); + return data; + } + + function readMulti($wrap) { + var data = { columns: [] }; + $wrap.find('.aksrt-sme-col').each(function () { + var $col = $(this); + var col = { + title: $col.find('[data-name="title"]').first().val() || '', + icon: $col.find('[data-name="icon"]').first().val() || '', + img_icon: '', + link: { url: $col.find('[data-name="link.url"]').first().val() || '', text: '', target: '' }, + items: [], + }; + $col.find('.aksrt-sme-item').each(function () { + var $it = $(this); + col.items.push({ + title: $it.find('input[data-name$=".title"]').val() || '', + icon: $it.find('input[data-name$=".icon"]').val() || '', + img_icon: '', + link: { url: $it.find('input[data-name$=".link.url"]').val() || '', text: '', target: '' }, + }); + }); + data.columns.push(col); + }); + return data; + } + + function enhanceItem($item) { + if ($item.data('aksrtSme')) return; + $item.data('aksrtSme', 1); + + var $graphicTa = $item.find('textarea[name*="[graphic_card_opts_json]"]'); + var $multiTa = $item.find('textarea[name*="[multi_column_links_opts_json]"]'); + var $type = $item.find('select[name*="[submenu_type]"]'); + if (!$graphicTa.length && !$multiTa.length) return; + + var $ui = $('
'); + $graphicTa.closest('p').before($ui); + + function sync() { + var type = $type.val(); + if (type === 'graphic_card') { + $graphicTa.closest('p').hide(); + $multiTa.closest('p').hide(); + var g = parseJSON($graphicTa.val(), graphicTemplate()); + renderGraphicUI($ui, g); + $ui.show(); + } else if (type === 'multi_column_links') { + $graphicTa.closest('p').hide(); + $multiTa.closest('p').hide(); + var m = parseJSON($multiTa.val(), multiTemplate()); + renderMultiUI($ui, m); + $ui.show(); + } else { + $ui.hide().empty(); + $graphicTa.closest('p').show(); + $multiTa.closest('p').show(); + } + } + + $type.on('change', sync); + $ui.on('click', '.aksrt-sme-add-card', function (e) { + e.preventDefault(); + var g = readGraphic($ui); + g.items.push({ img: '', title: '', badge: '', badge_class: 'jb-red', link: { url: '', text: '', target: '' } }); + renderGraphicUI($ui, g); + }); + $ui.on('click', '.aksrt-sme-del-card', function (e) { + e.preventDefault(); + $(this).closest('.aksrt-sme-card').remove(); + }); + $ui.on('click', '.aksrt-sme-add-col', function (e) { + e.preventDefault(); + var m = readMulti($ui); + m.columns.push({ + title: '', + icon: '', + img_icon: '', + link: { url: '', text: '', target: '' }, + items: [{ title: '', icon: '', img_icon: '', link: { url: '', text: '', target: '' } }], + }); + renderMultiUI($ui, m); + }); + $ui.on('click', '.aksrt-sme-del-col', function (e) { + e.preventDefault(); + $(this).closest('.aksrt-sme-col').remove(); + }); + $ui.on('click', '.aksrt-sme-add-item', function (e) { + e.preventDefault(); + var $col = $(this).closest('.aksrt-sme-col'); + var m = readMulti($ui); + var idx = $col.index(); + if (m.columns[idx]) { + m.columns[idx].items.push({ title: '', icon: '', img_icon: '', link: { url: '', text: '', target: '' } }); + } + renderMultiUI($ui, m); + }); + + // Before save, write UI → textarea + $('#update-nav-menu').on('submit.aksrtSme', function () { + var type = $type.val(); + if (type === 'graphic_card') { + $graphicTa.val(JSON.stringify(readGraphic($ui), null, 2)); + } else if (type === 'multi_column_links') { + $multiTa.val(JSON.stringify(readMulti($ui), null, 2)); + } + }); + + // Hide raw JSON by default; toggle available via double-click title + $graphicTa.closest('p').find('label').attr('title', '双击显示原始 JSON'); + sync(); + } + + function boot() { + $('#menu-to-edit .menu-item').each(function () { + enhanceItem($(this)); + }); + } + + $(boot); + $(document).on('menu-item-added', function () { + setTimeout(boot, 50); + }); +})(jQuery); diff --git a/assets/js/header-inline-search.js b/assets/js/header-inline-search.js new file mode 100644 index 00000000..75b79f09 --- /dev/null +++ b/assets/js/header-inline-search.js @@ -0,0 +1,140 @@ +/** + * Enhance layout-2 inline search with AJAX suggestions (aksrt_search_suggestions). + * Extends existing panel search without dual systems. + */ +(function () { + "use strict"; + + function initInlineSearchSuggest() { + var form = document.querySelector('form[data-aksrt-search-form="inline"]'); + if (!form || !window.aksrtData || !aksrtData.ajaxUrl) return; + + var input = form.querySelector(".search-input"); + var group = form.querySelector(".form-group.relative, .form-group"); + if (!input || !group) return; + + var panel = group.querySelector(".navbar-inline-search-panel"); + if (!panel) { + panel = document.createElement("div"); + panel.className = "dropdown-menu hover-show-con navbar-inline-search-panel"; + group.appendChild(panel); + } + + var timer = null; + var searchConfig = (window.aksrtData && aksrtData.search) || {}; + var suggestionsEnabled = searchConfig.suggestionsEnabled !== false; + + function typeValue() { + var t = form.querySelector('input[name="aksrt_search_type"]'); + return (t && t.value) || searchConfig.defaultType || "post"; + } + + function renderItems(items) { + var html = ""; + if (items && items.length) { + html += '
' + (searchConfig.suggestTitle || "搜索建议") + "
"; + html += '
"; + } + // Keep hot keywords block if present as static sibling content was replaced — + // re-append hots from data attribute if we stored them. + var hots = form.getAttribute("data-hots"); + if (hots) { + try { + var arr = JSON.parse(hots); + if (arr && arr.length) { + html += '
热门搜索
"; + } + } catch (e) {} + } + panel.innerHTML = html || panel.innerHTML; + panel.classList.add("is-open"); + panel.style.display = "block"; + panel.style.visibility = "visible"; + } + + // Persist hot keywords for re-render after suggestions + var hotLinks = panel.querySelectorAll(".navbar-inline-search-hots a"); + if (hotLinks.length) { + var kws = []; + hotLinks.forEach(function (a) { + kws.push((a.textContent || "").trim()); + }); + form.setAttribute("data-hots", JSON.stringify(kws)); + } + + function request(q) { + if (!suggestionsEnabled || q.length < 2) { + // restore hots-only + if (form.getAttribute("data-hots")) { + renderItems([]); + } + return; + } + var xhr = new XMLHttpRequest(); + xhr.open("POST", aksrtData.ajaxUrl, true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); + xhr.onload = function () { + if (xhr.status < 200 || xhr.status >= 300) return; + try { + var json = JSON.parse(xhr.responseText); + if (json.success && json.data && json.data.items) { + renderItems(json.data.items); + } + } catch (e) {} + }; + xhr.send( + "action=aksrt_search_suggestions&nonce=" + + encodeURIComponent(aksrtData.nonce) + + "&q=" + + encodeURIComponent(q) + + "&type=" + + encodeURIComponent(typeValue()) + ); + } + + input.addEventListener("input", function () { + var q = (input.value || "").trim(); + if (timer) clearTimeout(timer); + timer = setTimeout(function () { + request(q); + }, 180); + }); + + input.addEventListener("focus", function () { + panel.style.display = "block"; + panel.style.visibility = "visible"; + }); + } + + if (window.AksrtFrontend && typeof window.AksrtFrontend.register === "function") { + window.AksrtFrontend.register("aksrt-inline-search-suggest", function () { + initInlineSearchSuggest(); + }); + } else if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", initInlineSearchSuggest); + } else { + initInlineSearchSuggest(); + } +})(); diff --git a/src/AKSRT/Admin/Admin.php b/src/AKSRT/Admin/Admin.php index a43c365d..004b3384 100644 --- a/src/AKSRT/Admin/Admin.php +++ b/src/AKSRT/Admin/Admin.php @@ -132,6 +132,7 @@ class Admin { 'siteUrl' => home_url('/'), 'adminUrl' => admin_url('/'), 'themeVersion' => wp_get_theme()->get('Version') ?: '3.4.0-dev', + 'themeUri' => defined('AKSRT_URI') ? AKSRT_URI : get_template_directory_uri(), 'buildOk' => $missing_chunks === [], ]); diff --git a/src/AKSRT/Admin/NavMenuOptions.php b/src/AKSRT/Admin/NavMenuOptions.php index 9821a877..283181de 100644 --- a/src/AKSRT/Admin/NavMenuOptions.php +++ b/src/AKSRT/Admin/NavMenuOptions.php @@ -14,6 +14,24 @@ class NavMenuOptions { public static function init(): void { add_action('wp_nav_menu_item_custom_fields', [self::class, 'render_fields'], 10, 2); add_action('wp_update_nav_menu_item', [self::class, 'save'], 10, 2); + add_action('admin_enqueue_scripts', [self::class, 'enqueue_admin']); + } + + public static function enqueue_admin(string $hook): void { + if ($hook !== 'nav-menus.php') { + return; + } + $path = get_template_directory() . '/assets/js/admin-nav-menu-senior.js'; + if (!file_exists($path)) { + return; + } + wp_enqueue_script( + 'aksrt-admin-nav-menu-senior', + get_template_directory_uri() . '/assets/js/admin-nav-menu-senior.js', + ['jquery'], + (string) filemtime($path), + true + ); } /** diff --git a/src/AKSRT/Admin/Schema/SchemaPageDisplay.php b/src/AKSRT/Admin/Schema/SchemaPageDisplay.php index c84290d1..128c727b 100644 --- a/src/AKSRT/Admin/Schema/SchemaPageDisplay.php +++ b/src/AKSRT/Admin/Schema/SchemaPageDisplay.php @@ -31,15 +31,8 @@ class SchemaPageDisplay { ['key' => 'header_scroll_down_hide', 'label' => '下滑隐藏导航栏', 'type' => 'switch', 'default' => true], ]], ['key' => 'layout-type', 'title' => '布局类型', 'fields' => [ - ['key' => 'header_layout', 'label' => '桌面端布局', 'type' => 'radio', 'default' => '1', 'options' => [ - ['label' => '布局 1(经典)', 'value' => '1'], - ['label' => '布局 2(内联搜索)', 'value' => '2'], - ['label' => '布局 3(紧凑)', 'value' => '3'], - ]], - ['key' => 'mobile_header_layout', 'label' => '移动端布局', 'type' => 'radio', 'default' => 'center', 'options' => [ - ['label' => '居中(含搜索按钮)', 'value' => 'center'], - ['label' => '靠左', 'value' => 'left'], - ]], + ['key' => 'header_layout', 'label' => '桌面端布局', 'type' => 'image_select', 'default' => '1', 'options' => self::header_layout_options()], + ['key' => 'mobile_header_layout', 'label' => '移动端布局', 'type' => 'image_select', 'default' => 'center', 'options' => self::mobile_header_layout_options()], ['key' => 'mobile_navbar_align', 'label' => '移动端菜单方向', 'type' => 'radio', 'default' => 'left', 'options' => [ ['label' => '顶部(关闭手势)', 'value' => 'top'], ['label' => '左侧滑出', 'value' => 'left'], @@ -532,4 +525,24 @@ class SchemaPageDisplay { ], ]; } + + /** @return list */ + private static function header_layout_options(): array { + $base = defined('AKSRT_URI') ? trailingslashit(AKSRT_URI) . 'assets/images/header-layout/' : ''; + return [ + ['label' => '布局 1(经典)', 'value' => '1', 'image' => $base . 'header_layout_1.png'], + ['label' => '布局 2(内联搜索)', 'value' => '2', 'image' => $base . 'header_layout_2.png'], + ['label' => '布局 3(紧凑)', 'value' => '3', 'image' => $base . 'header_layout_3.png'], + ]; + } + + /** @return list */ + private static function mobile_header_layout_options(): array { + $base = defined('AKSRT_URI') ? trailingslashit(AKSRT_URI) . 'assets/images/header-layout/' : ''; + return [ + ['label' => '居中(含搜索按钮)', 'value' => 'center', 'image' => $base . 'mobile_header_layout_center.png'], + ['label' => '靠左', 'value' => 'left', 'image' => $base . 'mobile_header_layout_left.png'], + ]; + } + } diff --git a/src/AKSRT/Core/ScriptsPart1b.php b/src/AKSRT/Core/ScriptsPart1b.php index 8c546af0..50d7a1d6 100644 --- a/src/AKSRT/Core/ScriptsPart1b.php +++ b/src/AKSRT/Core/ScriptsPart1b.php @@ -161,7 +161,19 @@ trait ScriptsPart1b { ); } - $hmb_js = get_template_directory() . '/assets/js/header-newadd.js'; + + $inline_search_js = get_template_directory() . '/assets/js/header-inline-search.js'; + if (file_exists($inline_search_js)) { + wp_enqueue_script( + 'aksrt-header-inline-search', + $base_uri . '/assets/js/header-inline-search.js', + [], + (string) filemtime($inline_search_js), + true + ); + } + +$hmb_js = get_template_directory() . '/assets/js/header-newadd.js'; if (file_exists($hmb_js)) { wp_enqueue_script( 'aksrt-header-newadd', diff --git a/tools/nav-zibll-acceptance.md b/tools/nav-zibll-acceptance.md new file mode 100644 index 00000000..48c5cdcd --- /dev/null +++ b/tools/nav-zibll-acceptance.md @@ -0,0 +1,35 @@ +# Top nav zibll 1:1 acceptance checklist + +Branch: `worktree-nav-zibll-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) +- [ ] Layout 3: logo | CTAs/user | menu right cluster +- [ ] Fixed `body.nav-fixed` 88px 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 +- [ ] Header theme colors when custom enabled +- [ ] Language dropdown when i18n enabled + position header/both + +## Mobile +- [ ] center/left header; drawer left/right/top +- [ ] `body.mobile-navbar-show` open/close + 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 +- [ ] `cd assets/admin && npm run build` after schema changes + +## Page/section navs +- [ ] section-navs builds `.posts-nav-lists` on `[data-nav]` pages +- [ ] page-navs enqueued on posts-navs template + +## Deploy notes +- Admin `build/` is gitignored — run build on deploy host. +- PR: open from branch `worktree-nav-zibll-1to1` against main on Gitea. diff --git a/tools/nav-zibll-contract-report.txt b/tools/nav-zibll-contract-report.txt new file mode 100644 index 00000000..60a53575 --- /dev/null +++ b/tools/nav-zibll-contract-report.txt @@ -0,0 +1 @@ +PASS all nav zibll source contracts