From 75a097a018a0090f5902758353c578fce4aa2a25 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sat, 23 May 2026 18:43:42 +0000
Subject: [PATCH] =CustomBlocks.php overhaul relatively complete. Also refactored the gallery in gallery.min.js and the jvbRenderGallery.

---
 inc/managers/_setup.php |  131 +++++++++++++++++++++++--------------------
 1 files changed, 71 insertions(+), 60 deletions(-)

diff --git a/inc/managers/_setup.php b/inc/managers/_setup.php
index 45b8f73..84d8218 100644
--- a/inc/managers/_setup.php
+++ b/inc/managers/_setup.php
@@ -1,9 +1,10 @@
 <?php
 
+use JVBase\managers\ApprovalManager;
 use JVBase\managers\Cache;
 use JVBase\managers\IconsManager;
 use JVBase\registrar\Registrar;
-use JVBase\utility\Features;
+use JVBase\base\Site;
 
 require(JVB_DIR . '/inc/managers/ScriptLoader.php');
 require(JVB_DIR . '/inc/managers/CustomTable.php');
@@ -23,77 +24,87 @@
 	IconsManager::for('forms');
 
 	// Only initialize dash if feature is enabled
-	if (Features::forSite()->has('dashboard')) {
+	if (Site::has('dashboard')) {
 		IconsManager::for('dash');
 	}
+
+	if (Site::has('magicLink')) {
+		require(JVB_DIR . '/inc/managers/MagicLinkManager.php');
+	}
+
+	if (Site::hasAny(['dashboard', 'feed_block'])) {
+		require(JVB_DIR . '/inc/forms/TaxonomySelector.php');
+	}
+
+	if (Site::has('dashboard')) {
+		require(JVB_DIR . '/inc/managers/CRUDManager.php');
+		require(JVB_DIR . '/inc/managers/UploadManager.php');
+	}
+
+	if (Site::has('feed_block')) {
+		require(JVB_DIR . '/inc/managers/TaxonomyRelationships.php');
+	}
+
+	if (Site::hasAll(['dashboard', 'membership'])) {
+		require(JVB_DIR . '/inc/managers/UserTermsManager.php');
+	}
+
+	if (!empty(Registrar::getFeatured('approve_new'))) {
+		require(JVB_DIR . '/inc/managers/ApprovalManager.php');
+	}
+
+
+	$membership = Site::membership();
+	if ($membership) {
+		if ($membership->has('notifications')) {
+			require(JVB_DIR . '/inc/managers/Notifications/Content.php');
+			require(JVB_DIR . '/inc/managers/Notifications/EmailDigests.php');
+			require(JVB_DIR . '/inc/managers/Notifications/Notifications.php');
+			require(JVB_DIR . '/inc/managers/Notifications/Preferences.php');
+			require(JVB_DIR . '/inc/managers/NotificationManager.php');
+		}
+		if ($membership->has('forum') && !empty(Registrar::getFeatured('is_content', 'term'))) {
+			require(JVB_DIR . '/inc/managers/NewsRelationships.php');
+		}
+		if ($membership->has('invitable')) {
+			require(JVB_DIR . '/inc/managers/InvitationsManager.php');
+		}
+	}
+
+	if (Site::has('is_directory')) {
+		require(JVB_DIR . '/inc/managers/DirectoryManager.php');
+	}
+
+	if (Site::has('dashboard')) {
+		require(JVB_DIR . '/inc/managers/DashboardManager.php');
+	}
+
+	if (Site::has('referrals')) {
+		require(JVB_DIR . '/inc/managers/ReferralManager.php');
+	}
+
+	if (!empty(Registrar::getFeatured('karma'))) {
+		require(JVB_DIR . '/inc/managers/KarmaManager.php');
+	}
+	if (Site::has('favourites') && !empty(Registrar::getFeatured('favouritable'))) {
+		require(JVB_DIR . '/inc/managers/FavouritesManager.php');
+	}
+}
+
+add_action('init', 'jvb_load_karma', 1);
+function jvb_load_karma():void
+{
 }
 require(JVB_DIR . '/inc/managers/ErrorHandler.php');
 require(JVB_DIR . '/inc/managers/queue/_setup.php');
-//require(JVB_DIR . '/inc/managers/OperationQueue.php');
 require(JVB_DIR . '/inc/managers/EmailManager.php');
-
-if (Features::forSite()->has('magicLink')) {
-	require(JVB_DIR . '/inc/managers/MagicLinkManager.php');
-}
-
 require(JVB_DIR . '/inc/managers/LoginManager.php');
 
 
-//IF SITE HAS DASHBOARD AND FEED BLOCK
-//if (Features::forSite()->hasAny(['dashboard', 'feed_block'])) {
-	require(JVB_DIR . '/inc/forms/TaxonomySelector.php');
-//}
-
-//IF SITE HAS DASHBOARD
-if (Features::forSite()->has('dashboard')) {
-	require(JVB_DIR . '/inc/managers/CRUDManager.php');
-	require(JVB_DIR . '/inc/managers/UploadManager.php');
-}
-
-//IF SITE HAS FEED BLOCK
-if (Features::forSite()->has('feed_block')) {
-	require(JVB_DIR . '/inc/managers/TaxonomyRelationships.php');
-	new JVBase\managers\TaxonomyRelationships();
-}
-
-//if (Features::forSite()->hasAll(['dashboard', 'membership', 'feed_block'])) {
-	require(JVB_DIR . '/inc/managers/UserTermsManager.php');
-	new JVBase\managers\UserTermsManager();
-//}
-
-if (Features::forSite()->has('notifications')) {
-	require(JVB_DIR . '/inc/managers/Notifications/Content.php');
-	require(JVB_DIR . '/inc/managers/Notifications/EmailDigests.php');
-	require(JVB_DIR . '/inc/managers/Notifications/Notifications.php');
-	require(JVB_DIR . '/inc/managers/Notifications/Preferences.php');
-	require(JVB_DIR . '/inc/managers/NotificationManager.php');
-
-}
-
-if (Features::forMembership()->has('forum') && !empty(Registrar::getFeatured('is_content', 'term'))) {
-	require(JVB_DIR . '/inc/managers/NewsRelationships.php');
-}
-
-if (Features::forMembership()->has('invitable')) {
-	require(JVB_DIR . '/inc/managers/Invitations.php');
-}
-
-//
 //require(JVB_DIR . '/inc/managers/SchemaManager.php');
 //require(JVB_DIR . '/inc/managers/SEOMetaManager.php');
 require(JVB_DIR . '/inc/managers/SEO/_setup.php');
-if (Features::forSite()->has('is_directory')) {
-	require(JVB_DIR . '/inc/managers/DirectoryManager.php');
-}
+
 require(JVB_DIR . '/inc/managers/ImageGenerator.php');
 require(JVB_DIR . '/inc/managers/AdminPages.php');
 require(JVB_DIR . '/inc/managers/RoleManager.php');
-
-
-if (Features::forSite()->has('dashboard')) {
-	require(JVB_DIR . '/inc/managers/DashboardManager.php');
-}
-
-if (Features::forSite()->has('referrals')) {
-	require(JVB_DIR . '/inc/managers/ReferralManager.php');
-}

--
Gitblit v1.10.0