Jake Vanderwerf
2026-08-28 a9654f00c8fbc9934289d761843ddd071025013f
inc/admin/SEOAdmin.php
@@ -1,6 +1,9 @@
<?php
namespace JVBase\admin;
use JVBase\base\SchemaHelper;
use JVBase\Instance;
use JVBase\managers\AdminPages;
use JVBase\meta\Form;
use JVBase\registrar\Registrar;
use JVBase\ui\Tabs;
@@ -10,6 +13,7 @@
}
class SEOAdmin {
   use Instance;
   protected string $admin_page;
   protected array $types = [
      'JVBase\managers\SEO\render\Thing'                          => 'Thing',
@@ -104,10 +108,11 @@
   protected array $checks;
   public function __construct()
   protected function __construct()
   {
      $this->setChecks();
      add_filter('jvbDashboardPage', [$this, 'addDashboardSection'], 20, 2);
      add_action(BASE.'dashboard_page_seo', [$this, 'addDashboardSection'], 10);
      add_action('admin_menu', [$this, 'addAdminMenu']);
      $this->addFormListeners();
   }
@@ -132,7 +137,7 @@
   public function addAdminMenu():void
   {
      $main = JVB()->admin()->getMainConfig();
      $main = AdminPages::getInstance()->getMainConfig();
      $this->admin_page = add_submenu_page(
         $main['menu_slug'],
         'SEO',
@@ -143,14 +148,9 @@
      );
   }
   public function addDashboardSection(string $content, string $page):string
   public function addDashboardSection():void
   {
      if ($page !== 'jvb-seo') {
         return $content;
      }
      ob_start();
      $this->renderAdminPage();
      return ob_get_clean();
   }
   public function renderAdminPage(bool $outputScripts = true):void
@@ -203,8 +203,12 @@
         $this->renderStyles();
      }
   }
      private function renderStyles(): void
      {
         jvbInlineStyles('forms');
      }
   public function renderProperty(string $property, ?string $value, mixed $class):void
   public function renderProperty(string $property, mixed $value, mixed $class):void
   {
      $method = 'get'.ucFirst($property).'FieldConfig';
      $config = method_exists($class, $method) ? $class->$method() : $this->buildConfig($property);
@@ -250,7 +254,8 @@
      $this->formStart('website');
      $default = 'JVBase\managers\SEO\render\Thing\CreativeWork\WebSite';
//    $this->renderSchemaTypeSelection($value);
      $stored = get_option(BASE.'WebsiteSchema',apply_filters(BASE.'websiteSchema', []));
      $stored = SchemaHelper::schema('website');
      $this->renderFieldsFor($default, $stored);
      $this->formEnd();
      return ob_get_clean();
@@ -262,7 +267,8 @@
      $default = apply_filters(BASE.'OrganizationSchemaType', 'JVBase\managers\SEO\render\Thing\Organization\Organization');
      $value = get_option(BASE.'OrganizationSchemaType', $default);
      $this->renderSchemaTypeSelection($value);
      $stored = get_option(BASE.'OrganizationSchema',apply_filters(BASE.'OrganizationSchema', []));
      $stored = SchemaHelper::schema('organization');
      $this->renderFieldsFor($value, $stored);
      $this->formEnd();
      return ob_get_clean();
@@ -355,7 +361,7 @@
         ];
      }
      $success = JVB()->schemaHelper()->updateSchema($action, $data);
      $success = SchemaHelper::getInstance()->updateSchema($action, $data);
      return $success ? [
         'jvb_notice'   => 'success',
         'jvb_message'  => 'Saved changes successfully'