feat(nav): rewrite top header to zibll 1:1 DOM/CSS/JS contract

Replace hybrid site-nav/drawer shell with zibll navbar-top layouts 1/2/3,
body.mobile-navbar-show drawer, wired NavWalker + aksrt_menu_options meta,
nav_folding/chevron, VIP switches, and SPA/PHP schema parity. No dual-class
compat paths.
This commit is contained in:
kate522 committed 2026-07-22 11:18:34 +08:00
1 parent b8ee6b6a43
commit 259dbdbe04
28 files changed
+2463 -885

No files matched your search

+6 -11
View File
@@ -14,19 +14,14 @@ if (!function_exists('aksrt_get_header_newposts_config')) :
function aksrt_get_header_newposts_config(): array {
$cfg = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_header_newposts_config()
: ['enabled' => true, 'text' => __('发布', 'aksrt'), 'radius' => 20, 'class' => ''];
$all = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_all() : [];
// Prefer publish_btn from header nav when newposts not explicitly set.
: ['enabled' => true, 'text' => __('发布', 'aksrt'), 'radius' => 20, 'class' => '', 'types' => []];
$nav = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_header_nav_settings()
: ['publish_btn' => true];
if (empty($cfg['enabled']) && !empty($nav['publish_btn'])) {
$cfg['enabled'] = true;
}
$types = [];
if (!empty($all['header_newposts_types']) && is_array($all['header_newposts_types'])) {
$types = array_values(array_filter(array_map('sanitize_key', $all['header_newposts_types'])));
}
// Single source: newposts enabled AND header publish switch.
$cfg['enabled'] = !empty($cfg['enabled']) && !empty($nav['publish_btn']);
$types = is_array($cfg['types'] ?? null) ? $cfg['types'] : [];
if (!$types) {
$types = ['post'];
if (class_exists('\AKSRT\Settings\Settings')) {
@@ -229,7 +224,7 @@ if (!function_exists('aksrt_render_header_menu_buttons')) :
$show_vip = false;
if (class_exists('\AKSRT\Settings\Settings')) {
$vs = \AKSRT\Settings\Settings::get_payment_vip_settings();
$show_vip = !empty($vs['enabled']);
$show_vip = !empty($vs['enabled']) && !empty(\AKSRT\Settings\Settings::get_header_nav_settings()['nav_pay_vip']);
}
if ($show_vip) {
$is_vip = false;