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