From 86c6cd3cc099d2480932ede03c12cea01e625c94 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 26 Apr 2026 21:56:28 +0000
Subject: [PATCH] =Requiring files based on Site class settings

---
 inc/managers/SEO/SchemaBuilder.php |   49 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/inc/managers/SEO/SchemaBuilder.php b/inc/managers/SEO/SchemaBuilder.php
index 51eeba7..d4a2ee6 100644
--- a/inc/managers/SEO/SchemaBuilder.php
+++ b/inc/managers/SEO/SchemaBuilder.php
@@ -1,6 +1,8 @@
 <?php
 namespace JVBase\managers\SEO;
 
+use JVBase\registrar\Registrar;
+
 if (!defined('ABSPATH')) {
 	exit;
 }
@@ -47,7 +49,7 @@
 	private array $metaFields = ['metaTitle', 'metaDescription', 'socialPreviewImage', 'twitterImage'];
 
 	private array $defaultMetaValues = [
-		'metaTitle'          => '{{post_title}} | {{site_name}}',
+		'metaTitle'          => '{{post_title}}',
 		'metaDescription'    => '{{post_excerpt}}',
 		'socialPreviewImage' => '{{featured_image}}',
 		'twitterImage'       => ''
@@ -243,9 +245,11 @@
 	{
 		$options = ['' => '-- Select Post Type --'];
 
-		if (defined('JVB_CONTENT')) {
-			foreach (JVB_CONTENT as $key => $config) {
-				$options[jvbCheckBase($key)] = $config['plural'] ?? $config['singular'] ?? ucwords($key);
+		$content = Registrar::getRegistered('post');
+		if (!empty($content)){
+			foreach ($content as $c) {
+				$registrar = Registrar::getInstance($c);
+				$options[jvbCheckBase($c)] = $registrar->getPlural();
 			}
 		}
 
@@ -259,9 +263,12 @@
 	{
 		$options = ['' => '-- Select Taxonomy --'];
 
-		if (defined('JVB_TAXONOMY')) {
-			foreach (JVB_TAXONOMY as $key => $config) {
-				$options[jvbCheckBase($key)] = $config['plural'] ?? $config['singular'] ?? ucwords($key);
+
+		$tax = Registrar::getRegistered('term');
+		if (!empty($tax)){
+			foreach ($tax as $c) {
+				$registrar = Registrar::getInstance($c);
+				$options[jvbCheckBase($c)] = $registrar->getPlural();
 			}
 		}
 
@@ -400,7 +407,7 @@
 		 **************************************************************/
 		$this->field('about')
 			->type('reference')
-			->label('About (Service/Topic)')
+			->label('About')
 			->transformer('reference');
 
 		$this->field('temporalCoverage')
@@ -1487,6 +1494,32 @@
 				'answer'
 			]);
 
+		$this->type('Place')
+			->label('Place')
+			->group('general')
+			->fields([
+				'type',
+				'name',
+				'description',
+				'url',
+				'image',
+				'geo',
+				'address',
+				'sameAs',
+			]);
+
+		$this->type('City')
+			->label('City')
+			->group('general')
+			->extends('Place')
+			->addFields([
+				'containedInPlace',
+			]);
+		$this->field('containedInPlace')
+			->type('reference')
+			->label('Contained In')
+			->description('Parent place (province, country)')
+			->transformer('reference');
 		/**************************************************************
 		 * ORGANIZATION & BUSINESS
 		 **************************************************************/

--
Gitblit v1.10.0