From 772462eeca3002a1d52508aeba485aab2b4742ad Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 03 Mar 2026 19:06:19 +0000
Subject: [PATCH] =MAJOR OVERHAUL. Likely should have made a new branch ages ago. Key changes: Registrar.php is the base for custom post types, taxonomies, and user roles. Replaces JVB_CONTENT, JVB_TAXONOMY, and JVB_USER constants, eliminates most of Features.php (except for JVB_SITE, JVB_MEMBERSHIP), and has built in sanitizing and validation via sub-classes. Also started a major overhaul of the Schema output. Created a shit ton of property traits and classes to help sanitize and ensure proper data for different schema types. Still a bunch to do, but better to be starting committing changes here on this other branch.

---
 inc/blocks/RegisterBlocks.php |   81 ++++++++--------------------------------
 1 files changed, 17 insertions(+), 64 deletions(-)

diff --git a/inc/blocks/RegisterBlocks.php b/inc/blocks/RegisterBlocks.php
index 596de1b..f4360f3 100644
--- a/inc/blocks/RegisterBlocks.php
+++ b/inc/blocks/RegisterBlocks.php
@@ -1,21 +1,36 @@
 <?php
 
+use JVBase\registrar\Registrar;
 use JVBase\utility\Features;
 
 if (!defined('ABSPATH')) {
 	exit;
 }
 //Blocks
-if (jvbSiteUsesFeedBlock()) {
+if (Features::forSite()->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::getFeatured('is_glossary'))) {
+	error_log('Has Glossary Type');
+	require(JVB_DIR . '/build/glossary/render.php');
+}
+if (Features::forSite()->has('faq')) {
+	require(JVB_DIR . '/build/faq/render.php');
+}
+if (Features::hasIntegration('gmb')) {
+	require(JVB_DIR . '/build/gmbreviews/render.php');
+}
+
 
 function jvbRegisterBlocks():void
 {
+	if (Features::hasIntegration('gmb')) {
+		register_block_type(JVB_DIR . '/build/gmb-reviews');
+	}
 //    if (jvbSiteUsesFeedBlock()) {
 //        register_block_type(
 //            JVB_DIR . '/build/feed',
@@ -24,7 +39,7 @@
 //            ]
 //        );
 //    }
-	if (Features::anyContentHas('show_directory') || Features::anyTaxonomyHas('show_directory')) {
+	if (!empty(Registrar::getFeatured('show_directory'))) {
         register_block_type(
             JVB_DIR . '/build/list',
             [
@@ -46,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