From 2127b1bdd73ecd2423e443992da4b442f5a3c1a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 04 Feb 2026 21:19:25 +0000
Subject: [PATCH] =Major overhaul of MetaManager.php -> Meta.php and RestRouteManager.php -> Rest.php. Seems to work for JakeVan

---
 inc/managers/DirectoryManager.php |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/inc/managers/DirectoryManager.php b/inc/managers/DirectoryManager.php
index 541ca2c..dc591ef 100644
--- a/inc/managers/DirectoryManager.php
+++ b/inc/managers/DirectoryManager.php
@@ -38,7 +38,6 @@
 		}
 
 		add_action('init', [$this, 'registerDirectories']);
-		jvb_register_do_once('directories_registered', [$this, 'activate']);
         add_action('render_block', [$this, 'renderBlock'], 99999, 3);
     }
 
@@ -66,7 +65,7 @@
 			'public'              => true,
 			'menu_icon'		=> jvbCSSIcon('list-dashes'),
 			'publicly_queryable'    => true,
-			'show_in_menu'          => false,
+			'show_in_menu'          => true,
 			'show_in_admin_bar'     => false,
 			'has_archive'           => true,
 			'hierarchical'			=> true,
@@ -227,6 +226,33 @@
         }
     }
 
+	protected function buildDirectoryList():array
+	{
+		$saved = get_option(BASE.'directory_list', []);
+		if (empty($saved)) {
+			$all = new WP_Query([
+				'post_type'	=> BASE.'directory',
+				'post_status'	=> 'publish',
+				'posts_per_page'	=> -1,
+			]);
+			foreach($all->posts as $post) {
+				$saved[$post->post_name] = [
+					'slug'	=> $post->post_name,
+					'title'	=> $post->post_title,
+					'ID'	=> $post->ID,
+					'url'	=> get_the_permalink($post->ID),
+					'page'	=> $post->post_title,
+					'description'	=> $this->getConfigFromType($post->post_name)['description']??'',
+					'type'	=> get_post_meta($post->ID, self::$type,true),
+					'extra'	=> $this->getConfigFromType($post->post_name)['directory_extra']??[],
+				];
+			}
+			update_option(BASE.'directory_list', $saved);
+			wp_reset_postdata();
+		}
+		return $saved;
+	}
+
 	public function getDirectoryPageIDs():array
 	{
 		if (empty($this->directoryPageIDs)) {
@@ -237,7 +263,7 @@
 	public function getDirectoryList():array
 	{
 		if (empty($this->directoryList)) {
-			$this->directoryList = get_option(BASE.'directory_list', []);
+			$this->directoryList = $this->buildDirectoryList();
 		}
 		return $this->directoryList;
 	}

--
Gitblit v1.10.0