Jake Vanderwerf
2026-07-09 c68aefb847b09daa0697de7684d3451e2e68ce1e
inc/managers/SEO/SEOAdminPage.php
@@ -3,6 +3,7 @@
use JVBase\managers\AdminPages;
use JVBase\meta\Form;
use JVBase\registrar\Registrar;
use JVBase\ui\Tabs;
if (!defined('ABSPATH')) {
@@ -18,15 +19,15 @@
 */
class SEOAdminPage
{
    private ConfigManager $config;
    private SchemaBuilder $registry;
//    private SchemaBuilder $registry;
    public function __construct()
    {
        $this->registry = SchemaBuilder::getInstance();
//        $this->registry = SchemaBuilder::getInstance();
        // Add to JVB dashboard
      add_action(BASE.'dashboardPage', [$this, 'addDashboardSection'], 10, 1);
        add_filter('jvbDashboardPage', [$this, 'addDashboardSection'], 20, 2);
      add_action('admin_enqueue_scripts', [$this, 'enqueueScripts']);
    }
@@ -60,14 +61,13 @@
    /**
     * Add section to JVB dashboard
     */
    public function addDashboardSection(string $content, string $page): string
    public function addDashboardSection(string $page):void
    {
      if ($page !== 'SEO') {
         return $content;
      jvbDump($page);
      if ($page !== 'seo') {
         return;
      }
        ob_start();
        $this->renderAdminPage();
        return ob_get_clean();
    }
    /**
@@ -146,7 +146,9 @@
                  echo '<div class="seo-'.$type.'">';
               }
               $fieldConfig = $this->registry->getFieldDefinition($fieldName);
               if (!$fieldConfig) {
                  continue;
               }
               echo Form::render($fieldName, $config[$fieldName]??'', $fieldConfig);
               if ($index === 0 && $fieldName === 'type') {
                  echo '<div class="seo-'.$type.'">';
@@ -190,23 +192,16 @@
   {
      $types = ['meta', 'schema'];
      switch ($type) {
         case 'content':
            $config = JVB_CONTENT;
            $types[] = 'archive';
            break;
         case 'taxonomy':
         case 'taxonomies':
            $config = JVB_TAXONOMY;
            break;
         case 'user':
            $config = JVB_USER;
            break;
         default:
            error_log('[SEOAdminPage]:renderConfig --- no config found for '.$type);
            return '';
      if ($type == 'content') {
         $types[] = 'archive';
      }
      $registrar = Registrar::getInstance($type);
      if (!$registrar){
         return '';
      }
      $config = $registrar->getConfig('seo');
      $mainTabs = new Tabs();
      foreach ($config as $c => $opt) {
@@ -267,6 +262,9 @@
               $fields = $this->registry->getFieldsForType($type);
               foreach ($fields as $fieldName) {
                  $config = $this->registry->getFieldDefinition($fieldName);
                  if (!$config) {
                     continue;
                  }
                  echo Form::render($fieldName, '', $config);
               }
               ?>