From 87237f15618e2320967b9380c360b89f7323d2e9 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 30 Aug 2026 16:01:05 +0000
Subject: [PATCH] =Meta overhaul, slight reference fixes in BreadcrumbsManager

---
 inc/managers/SEO/BreadcrumbManager.php |   36 +++++++++++++++++++-----------------
 1 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/inc/managers/SEO/BreadcrumbManager.php b/inc/managers/SEO/BreadcrumbManager.php
index 30bd448..9d09ed6 100644
--- a/inc/managers/SEO/BreadcrumbManager.php
+++ b/inc/managers/SEO/BreadcrumbManager.php
@@ -25,6 +25,8 @@
 	private Cache $postCache;
 	private Cache $userCache;
 	private static ?self $instance = null;
+	private static bool $hasDirectory;
+	private static array $directories;
 
 	private function __construct()
 	{
@@ -32,6 +34,8 @@
 		$this->termCache = Cache::for('breadcrumbs_tax', 'term');
 		$this->postCache = Cache::for('breadcrumbs_post', 'post');
 		$this->userCache = Cache::for('breadcrumbs_user', 'user');
+		self::$hasDirectory = Site::has('is_directory');
+		self::$directories = self::$hasDirectory ? DirectoryManager::getInstance()->directories() : [];
 	}
 
 	public static function getInstance(): self
@@ -120,12 +124,11 @@
 				$content = is_array($registrar->registrar->for) ? $registrar->registrar->for[0] : $registrar->registrar->for;
 				$contentRegistrar = Registrar::getInstance($content);
 
-				if(Site::has('is_directory') && $contentRegistrar && $contentRegistrar->hasFeature('show_directory')) {
-					$directory = DirectoryManager::getInstance();
-					if (!empty($directory->directories($content)??[])){
+				if(self::$hasDirectory && $contentRegistrar && $contentRegistrar->hasFeature('show_directory')) {
+					if (!empty(self::$directories[$content]??[])){
 						$crumbs[] = [
-							'name'	=> $directory->directories($content)['title'],
-							'url'	=>$directory->directories($content)['url']
+							'name'	=> self::$directories[$content]['title'],
+							'url'	=> self::$directories[$content]['url']
 						];
 					}
 				} else {
@@ -143,12 +146,12 @@
 
 
 		// Add directory if exists
-		if ($registrar && $registrar->hasFeature('show_directory')) {
-			$directory = DirectoryManager::getInstance();
-			if ($directory && !empty($directory->directories($tax)??[])) {
+		if (self::$hasDirectory && $registrar && $registrar->hasFeature('show_directory')) {
+
+			if (!empty(self::$directories[$tax]??[])) {
 				$crumbs[] = [
-					'name'	=> $directory->directories($tax)['title'],
-					'url'	=>$directory->directories($tax)['url']
+					'name'	=> self::$directories[$tax]['title'],
+					'url'	=> self::$directories[$tax]['url']
 				];
 			}
 		}
@@ -171,14 +174,14 @@
 		}
 
 		// Handle directory posts specially
-		if (Site::has('is_directory') && DirectoryManager::getInstance()->isDirectory()) {
+		if (self::$hasDirectory && DirectoryManager::getInstance()->isDirectory()) {
 			$pos = jvbGetDirectoryInfo();
 			if (!empty($pos)) {
 				// Special case for map
 				if ($pos['title'] == 'Map') {
 					$crumbs[] = [
 						'name' => 'Tattoo Shops',
-						'url'  => DirectoryManager::getInstance()->directories(BASE.'shop')['url']
+						'url'  => DirectoryManager::getInstance()->directories(BASE.'shop')['url']??''
 					];
 				}
 
@@ -212,13 +215,12 @@
 
 		$registrar = Registrar::getInstance($name);
 
-		if($registrar && $registrar->hasFeature('show_directory') && DirectoryManager::getInstance()) {
-			$directory = DirectoryManager::getInstance();
+		if(self::$hasDirectory && $registrar && $registrar->hasFeature('show_directory')) {
 
-			if ($directory && !empty($directory->directories($name)??[])){
+			if (!empty(self::$directories[$name]??[])){
 				$crumbs[] = [
-					'name'	=> $directory->directories($name)['title'],
-					'url'	=>$directory->directories($name)['url']
+					'name'	=> self::$directories[$name]['title'],
+					'url'	=> self::$directories[$name]['url']
 				];
 			}
 		} elseif (Site::has('is_directory') && $name === 'directory') {

--
Gitblit v1.10.0