| | |
| | | <?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()); |
| | | } |
| | |
| | | default => [], |
| | | }; |
| | | |
| | | |
| | | $result = apply_filters(BASE.ucfirst($type).ucfirst($format).'Default', $defaults); |
| | | if ($format === 'reference' && empty($result)) { |
| | | $full = self::getDefault($type, 'schema'); |
| | |
| | | $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) { |
| | |
| | | } |
| | | return $class; |
| | | } |
| | | |
| | | public static function reset(string $type, string $format):bool |
| | | { |
| | | $default = self::getDefault($type, $format); |
| | | return self::update($type, $format, $default); |
| | | } |
| | | } |