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.

---
 inc/blocks/RegisterBlocks.php |   84 +++++++++--------------------------------
 1 files changed, 19 insertions(+), 65 deletions(-)

diff --git a/inc/blocks/RegisterBlocks.php b/inc/blocks/RegisterBlocks.php
index e5f15f5..efe6e51 100644
--- a/inc/blocks/RegisterBlocks.php
+++ b/inc/blocks/RegisterBlocks.php
@@ -1,20 +1,36 @@
 <?php
 
-use JVBase\utility\Features;
+use JVBase\registrar\Registrar;
+use JVBase\base\Site;
 
 if (!defined('ABSPATH')) {
 	exit;
 }
 //Blocks
-if (jvbSiteUsesFeedBlock()) {
+if (Site::has('feed_block')) {
     require(JVB_DIR . '/build/feed/render.php');
 }
 require(JVB_DIR . '/build/list/render.php');
 require(JVB_DIR . '/build/summary/render.php');
 require(JVB_DIR . '/build/forms/render.php');
+require(JVB_DIR . '/build/menu/render.php');
+if (!empty(Registrar::withFeature('is_glossary'))) {
+	error_log('Has Glossary Type');
+	require(JVB_DIR . '/build/glossary/render.php');
+}
+if (Site::has('faq')) {
+	require(JVB_DIR . '/build/faq/render.php');
+}
+if (Site::hasIntegration('gmb')) {
+	require(JVB_DIR . '/build/gmbreviews/render.php');
+}
+
 
 function jvbRegisterBlocks():void
 {
+	if (Site::hasIntegration('gmb')) {
+		register_block_type(JVB_DIR . '/build/gmb-reviews');
+	}
 //    if (jvbSiteUsesFeedBlock()) {
 //        register_block_type(
 //            JVB_DIR . '/build/feed',
@@ -23,7 +39,7 @@
 //            ]
 //        );
 //    }
-	if (Features::anyContentHas('show_directory') || Features::anyTaxonomyHas('show_directory')) {
+	if (!empty(Registrar::withFeature('show_directory'))) {
         register_block_type(
             JVB_DIR . '/build/list',
             [
@@ -45,65 +61,3 @@
     ]);
 }
 add_filter('block_categories_all', 'jvbRegisterBlockCategory');
-
-//Get our loaded types
-function jvbRegisterFeedTypes():void
-{
-    global $jvb_feed;
-    global $jvb_taxonomy_for;
-
-
-    wp_localize_script('jvb-feed-block-editor', 'jvbBlockSettings', [
-        'contentTypes'    => $jvb_feed,
-        'taxonomyFor'   =>  $jvb_taxonomy_for
-    ]);
-
-
-    // Filter for block.json
-    add_filter('block_type_metadata', function ($metadata) use ($jvb_feed) {
-        if ($metadata['name'] === 'jvb/feed') {
-            $metadata['attributes']['contentTypes']['items']['enum'] = array_keys($jvb_feed);
-        }
-        return $metadata;
-    });
-}
-add_action('wp_loaded', 'jvbRegisterFeedTypes');
-
-if (jvbSiteUsesFeedBlock()) {
-    add_action('rest_api_init', 'jvbGetFeedTypes');
-    function jvbGetFeedTypes():void
-    {
-        register_rest_route(
-            'jvb/v1',
-            'types',
-            [
-                'permission_callback'    => function () {
-                    return is_user_logged_in();
-                },
-                'callback'    => function () {
-                    global $jvb_feed;
-                    return new WP_REST_Response(json_encode((object) $jvb_feed));
-                }
-            ]
-        );
-    }
-}
-
-
-/**
- * Enqueue block editor assets
- */
-function jvbEnqueueBlockEditorAssets():void
-{
-    // Only localize for block editor
-    if (!is_admin()) {
-        return;
-    }
-    // Localize list types for the block
-    wp_localize_script(
-        'jvb-list-editor-script', // This should match your editor script handle
-        'jvbListTypes',
-        jvbGlobalDirectoryInfo()
-    );
-}
-add_action('enqueue_block_editor_assets', 'jvbEnqueueBlockEditorAssets');

--
Gitblit v1.10.0