From ba1e1ccf869b818f7a7a897264dfea05563a7796 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 07 Jun 2026 20:10:20 +0000
Subject: [PATCH] =Major overhaul of Integrations. Playing around with adding fields to post types through Registrar from an integrations' class file.

---
 jvb.php |   62 ++++++++++++++++++++++++++++--
 1 files changed, 57 insertions(+), 5 deletions(-)

diff --git a/jvb.php b/jvb.php
index 0fcddcc..16816ed 100644
--- a/jvb.php
+++ b/jvb.php
@@ -4,7 +4,7 @@
 Plugin URI: https://jakevan.ca
 Description: The Base Plugin for JakeVan clients
 Author: Jake Vanderwerf
-Version: 1.0.0
+Version: 1.1.0
 Author URI: https://jakevan.ca/
 Textdomain: jvb
 */
@@ -88,6 +88,7 @@
 }, 10, 3);
 
 
+
 function jvbIgnoredPostTypes():array
 {
 	return [BASE.'directory', BASE.'dash', 'attachment', 'revision', 'nav_menu_item'];
@@ -248,11 +249,54 @@
 require(JVB_DIR . '/inc/admin/_setup.php');
 
 require(JVB_DIR . '/JVBase.php');
+
+/**
+ * After moving to the Registrar::based registration, we need to carefully time
+ * 	when Site gets defined, as well as Registrar initial definitions, field definitions,
+ * 	and integration config
+ * These custom actions should simplify the timing for us.
+ */
+add_action('plugins_loaded', 'jvb_site_definitions',1);
+add_action('plugins_loaded', 'jvb_registrar_definitions',2);
+add_action('plugins_loaded', 'jvb_field_definitions', 3);
 add_action('init', 'jvbLoadBase', 1);
+add_action('init', 'jvb_integration_definitions',3);
+add_action('init', 'jvb_field_section_definitions', 5);
+/**
+ * Can define the Site settings
+ * @return void
+ */
+function jvb_site_definitions():void
+{
+	do_action('jvb_define_site');
+}
+function jvb_registrar_definitions():void
+{
+	do_action('jvb_define_registrar');
+}
+function jvb_field_definitions():void
+{
+	do_action('jvb_define_fields');
+}
+
+
 function jvbLoadBase():void
 {
 	JVB::getInstance();
 }
+
+function jvb_integration_definitions():void
+{
+	do_action('jvb_define_integrations');
+}
+
+function jvb_field_section_definitions():void
+{
+	do_action('jvb_define_field_sections');
+	Registrar::maybeBuildSections();
+}
+
+
 function JVB(): JVB
 {
 	return JVB::getInstance();
@@ -317,7 +361,7 @@
 	if (Site::has('favourites')) {
 		$interactions[] = 'favourites';
 	}
-	if (!empty(Registrar::getFeatured('karma'))) {
+	if (!empty(Registrar::withFeature('karma'))) {
 		$interactions[] = 'karma';
 	}
 	if (Site::has('notifications')) {
@@ -325,7 +369,6 @@
 	}
 
 	if (!empty($interactions)) {
-		wp_enqueue_script('jvb-interactions');
 		foreach($interactions as $interaction) {
 			wp_enqueue_script('jvb-'.$interaction);
 		}
@@ -373,7 +416,7 @@
 		}';
 	}
 
-	if (!empty(Registrar::getFeatured('karma'))) {
+	if (!empty(Registrar::withFeature('karma'))) {
 		wp_enqueue_script('jvb-votes');
 		$initUserSettings .= '// Fetch user votes
         try {
@@ -463,7 +506,7 @@
         ));
     }
 
-    jvbAddScriptDependency('jvb-feed-view-script', 'jvb-queue');
+//    jvbAddScriptDependency('jvb-feed-view-script', 'jvb-queue');
     jvbAddScriptDependency('jvb-feed-view-script', 'jvb-selector');
     jvbAddScriptDependency('jvb-feed-view-script', 'jvb-data-store');
     jvbAddScriptDependency('jvb-feed-view-script', 'jvb-cache');
@@ -475,6 +518,8 @@
 	jvbAddScriptDependency('jvb-forms-view-script', 'jvb-quill');
 	jvbAddScriptDependency('jvb-forms-view-script', 'jvb-form');
 	jvbAddScriptDependency('jvb-forms-view-script', 'jvb-tabs');
+
+	jvbAddScriptDependency('jvb-timeline-view-script', 'jvb-gallery');
 }
 
 function jvbAdminMap():void
@@ -594,3 +639,10 @@
 		debug_print_backtrace();
 	}
 } );
+
+
+add_filter('the_seo_framework_sitemap_exclude_ids', 'jvb_maybe_exclude_singles', 8, 1);
+function jvb_maybe_exclude_singles(array $IDs):array
+{
+	return Registrar::maybeExcludeSingles($IDs);
+}

--
Gitblit v1.10.0