From 56a9a1ccf764ff7a6af8f8a2292cb07443cb4aa7 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 28 May 2026 18:19:57 +0000
Subject: [PATCH] =New Gitbit setpu
---
src/drawer-menu/render.php | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/src/drawer-menu/render.php b/src/drawer-menu/render.php
new file mode 100644
index 0000000..d2fe96c
--- /dev/null
+++ b/src/drawer-menu/render.php
@@ -0,0 +1,41 @@
+<?php
+
+use JVBase\managers\Cache;
+use JVBase\ui\Navigation;
+
+$menu_id = $attributes['menuId'] ?? '';
+$collapsed = $attributes['collapsed'] ?? true;
+
+// You'd populate this from options, a filter, or however you store menu data
+$menu_items = apply_filters('jvbDrawerItems', [], $menu_id);
+
+if (empty($menu_items) || empty($menu_id)) {
+ return '<p>Please configure the drawer menu in block settings.</p>';
+}
+
+$cache = Cache::for('drawer');
+if (JVB_TESTING) {
+ $cache->flush();
+}
+
+if (!is_front_page()) {
+ $menu_items[] = [
+ 'text' => 'Home',
+ 'url' => home_url(),
+ 'icon' => 'house-simple',
+ ];
+}
+$items = array_map(function($item) { return $item['text'];}, $menu_items);
+
+$key = $cache->generateKey($items);
+$menu = $cache->remember($key,
+function () use ($menu_items, $menu_id, $collapsed) {
+ $menu = new Navigation($menu_id);
+ $menu->asDrawer($collapsed)->populateFromArray($menu_items);
+ return $menu->render();
+});
+
+global $wp;
+
+$current = home_url($wp->request.'/');
+echo str_replace($current.'"', $current.'" class="current" aria-current="page"', $menu);
--
Gitblit v1.10.0