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/Sanitizer.php |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/inc/meta/Sanitizer.php b/inc/meta/Sanitizer.php
index 14789c2..e6cad1c 100644
--- a/inc/meta/Sanitizer.php
+++ b/inc/meta/Sanitizer.php
@@ -311,4 +311,22 @@
 			}
 			return 0.0;
 	}
+
+	public static function sanitizePhone(string|int $value, array $config = []):string
+	{
+		$digits = preg_replace('/\D/', '', (string) $value);
+
+		$length = strlen($digits);
+
+		if ($length < 10 || $length > 13) { // 13 = 3-digit country code + 10
+			return '';
+		}
+
+		$countryCode = $length > 10 ? substr($digits, 0, $length - 10) : null;
+		$number = substr($digits, -10);
+
+		$formatted = preg_replace('/(\d{3})(\d{3})(\d{4})/', '$1-$2-$3', $number);
+
+		return $countryCode ? '+' . $countryCode . '-' . $formatted : $formatted;
+	}
 }

--
Gitblit v1.10.0