Jake Vanderwerf
2026-09-04 32ce5c542c90be348895328078e392dde2052957
base/SchemaHelper.php
@@ -1,18 +1,22 @@
<?php
namespace JVBase\base;
use JVBase\Instance;
use JVBase\meta\Meta;
use JVBase\registrar\config\seo\Resolver;
use JVBase\registrar\Registrar;
if (!defined('ABSPATH')) {
   exit;
}
class SchemaHelper
{
   use Instance;
   protected static array $allowedTypes;
   protected static array $allowedFormats = ['schema', 'archive', 'meta', 'reference'];
   protected static array $schemas = [];
   protected static array $metas = [];
   protected static array $archives = [];
   protected static array $references = [];
   public function __construct()
   protected function __construct()
   {
      self::$allowedTypes = array_merge(['website', 'organization'], Registrar::getRegistered());
   }
@@ -125,6 +129,7 @@
         default => [],
      };
      $result = apply_filters(BASE.ucfirst($type).ucfirst($format).'Default', $defaults);
      if ($format === 'reference' && empty($result)) {
         $full = self::getDefault($type, 'schema');
@@ -274,6 +279,10 @@
      $className = $config['type'];
      unset($config['type']);
      $class = new $className();
      if (array_key_exists('id', $config)) {
         $class->setId($config['id']);
         unset($config['id']);
      }
      foreach ($config as $property => $value) {
@@ -294,4 +303,10 @@
      }
      return $class;
   }
   public static function reset(string $type, string $format):bool
   {
      $default = self::getDefault($type, $format);
      return self::update($type, $format, $default);
   }
}