| | |
| | | namespace JVBase\managers\SEO; |
| | | |
| | | use JVBase\managers\AdminPages; |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\meta\MetaForm; |
| | | use JVBase\meta\Form; |
| | | use JVBase\registrar\Registrar; |
| | | use JVBase\ui\Tabs; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | |
| | | */ |
| | | class SEOAdminPage |
| | | { |
| | | private ConfigManager $config; |
| | | private SchemaBuilder $registry; |
| | | private MetaForm $form; |
| | | // private SchemaBuilder $registry; |
| | | |
| | | public function __construct() |
| | | { |
| | | $this->registry = SchemaBuilder::getInstance(); |
| | | $this->form = new MetaForm(); |
| | | // $this->registry = SchemaBuilder::getInstance(); |
| | | |
| | | |
| | | // Add to JVB dashboard |
| | |
| | | echo '<div class="seo-'.$type.'">'; |
| | | } |
| | | $fieldConfig = $this->registry->getFieldDefinition($fieldName); |
| | | |
| | | $this->form->render($fieldName, $config[$fieldName]??'', $fieldConfig); |
| | | if (!$fieldConfig) { |
| | | continue; |
| | | } |
| | | echo Form::render($fieldName, $config[$fieldName]??'', $fieldConfig); |
| | | if ($index === 0 && $fieldName === 'type') { |
| | | echo '<div class="seo-'.$type.'">'; |
| | | } |
| | |
| | | { |
| | | $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) { |
| | |
| | | $fields = $this->registry->getFieldsForType($type); |
| | | foreach ($fields as $fieldName) { |
| | | $config = $this->registry->getFieldDefinition($fieldName); |
| | | $this->form->render($fieldName, '', $config); |
| | | if (!$config) { |
| | | continue; |
| | | } |
| | | echo Form::render($fieldName, '', $config); |
| | | } |
| | | ?> |
| | | </div> |