Jake Vanderwerf
2026-03-29 9f672be1f7bb5f8462374ca4732d095d4f24685b
inc/managers/SEO/ConfigManager.php
@@ -1,6 +1,8 @@
<?php
namespace JVBase\managers\SEO;
use JVBase\registrar\Registrar;
if (!defined('ABSPATH')) {
   exit;
}
@@ -72,10 +74,35 @@
   protected function getMetaFor(string $type): array
   {
      $default = $this->registry->getDefaultMetaValues();
      // Check if content/taxonomy config has SEO meta defined
      $configMeta = $this->getDefaultConfig($type, 'meta');
      if (!empty($configMeta)) {
         $configMeta = $this->normalizeMetaKeys($configMeta);
         $default = array_merge($default, $configMeta);
      }
      return get_option($this->metaKey, $default);
   }
   /**
    * Normalize content-defined meta keys to system keys
    */
   private function normalizeMetaKeys(array $meta): array
   {
      $map = [
         'title'       => 'metaTitle',
         'description' => 'metaDescription',
      ];
      $normalized = [];
      foreach ($meta as $key => $value) {
         $normalized[$map[$key] ?? $key] = $value;
      }
      return $normalized;
   }
   /**
    * Get default schema configuration for a type
    */
   protected function getConfigFor(string $type): array
@@ -119,10 +146,8 @@
         default:
            // Try to find in content, taxonomy, or user configs
            $config = $this->findInConstants($type);
            if (array_key_exists('seo', $config) && is_array($config['seo'])) {
               $config = $config['seo'];
            }
            $registrar = Registrar::getInstance($type);
            $config = $registrar->getConfig('seo');
            // If asking for archive config and none exists, provide default
            if ($configType === 'archive' && !isset($config['archive'])) {
@@ -136,22 +161,6 @@
            return $config[$configType] ?? [];
      }
   }
   /**
    * Find configuration in JVB constants
    */
   private function findInConstants(string $type): array
   {
      if (defined('JVB_CONTENT') && isset(JVB_CONTENT[$type])) {
         return JVB_CONTENT[$type];
      }
      if (defined('JVB_TAXONOMY') && isset(JVB_TAXONOMY[$type])) {
         return JVB_TAXONOMY[$type];
      }
      if (defined('JVB_USER') && isset(JVB_USER[$type])) {
         return JVB_USER[$type];
      }
      return [];
   }
   public function resetConfig(): bool
   {