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/meta/MetaTypeManager.php |   32 +++++++++++++++++++++++---------
 1 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/inc/meta/MetaTypeManager.php b/inc/meta/MetaTypeManager.php
index 63348d6..69a2fd9 100644
--- a/inc/meta/MetaTypeManager.php
+++ b/inc/meta/MetaTypeManager.php
@@ -9,7 +9,7 @@
  */
 class MetaTypeManager
 {
-    protected array $type_map = [
+    protected static array $type_map = [
         'text' => [
             'type' 		=> 'string',
             'sanitize' 	=> 'sanitize_text_field',
@@ -50,6 +50,11 @@
             'sanitize' => 'sanitize_email',
 			'default'	=> '',
         ],
+        'phone' => [
+            'type' => 'string',
+            'sanitize' => 'sanitizeTelephone',
+			'default'	=> '',
+        ],
         'url' => [
             'type' => 'string',
             'sanitize' => 'esc_url_raw',
@@ -85,6 +90,11 @@
             'sanitize' => 'sanitizeRepeater',
 			'default'	=> [],
         ],
+		'tag_list' => [
+			'type' => 'object',
+			'sanitize' => 'sanitizeTagList',
+			'default' => []
+		],
 		'group' => [
 			'type' => 'object',
 			'sanitize' => 'sanitizeGroup',
@@ -125,23 +135,27 @@
 			'default'	=> '',
         ]
     ];
-	public function getType(string $field_name):array
+	public static function getType(string $field_name):array
 	{
-		return $this->type_map[$field_name]??[];
+		return static::$type_map[$field_name]??[];
 	}
 
-    public function getMetaType(string $field_type):string
+    public static function getMetaType(string $field_type):string
     {
-        return $this->type_map[$field_type]['type'] ?? 'string';
+        return static::$type_map[$field_type]['type'] ?? 'string';
     }
 
-    public function getSanitizeCallback(string $field_type):string
+    public static function getSanitizeCallback(string $field_type):string
     {
-        return $this->type_map[$field_type]['sanitize'] ?? 'sanitize_text_field';
+        return static::$type_map[$field_type]['sanitize'] ?? 'sanitize_text_field';
     }
 
-    public function registerType(string $type, array $config):void
+    public static function registerType(string $type, array $config):void
     {
-        $this->type_map[$type] = $config;
+        static::$type_map[$type] = $config;
     }
+	public static function getTypes():array
+	{
+		return static::$type_map;
+	}
 }

--
Gitblit v1.10.0