<?php
|
namespace JVBase;
|
|
use JVBase\admin\SEOAdmin;
|
use JVBase\base\SchemaHelper;
|
use JVBase\base\Site;
|
use JVBase\blocks\CustomBlocks;
|
use JVBase\managers\Approvals;
|
use JVBase\managers\DirectoryManager;
|
use JVBase\managers\Favourites;
|
use JVBase\managers\InvitationsManager;
|
use JVBase\managers\Login;
|
use JVBase\managers\NotificationManager;
|
use JVBase\managers\queue\Queue;
|
use JVBase\managers\Referrals;
|
use JVBase\managers\SEO\render\SchemaOutput;
|
use JVBase\managers\TaxonomyRelationships;
|
use JVBase\managers\UserTermsManager;
|
use JVBase\registrar\Registrar;
|
use JVBase\rest\routes\AdminRoutes;
|
use JVBase\rest\routes\ApprovalRoutes;
|
use JVBase\rest\routes\ContentRoutes;
|
use JVBase\rest\routes\ContentTermsRoutes;
|
use JVBase\rest\routes\ErrorRoutes;
|
use JVBase\rest\routes\FavouritesRoutes;
|
use JVBase\rest\routes\FeedRoutes;
|
use JVBase\rest\routes\FormRoutes;
|
use JVBase\rest\routes\Invitations;
|
use JVBase\rest\routes\LoginRoutes;
|
use JVBase\rest\routes\NewsRoutes;
|
use JVBase\rest\routes\NotificationsRoutes;
|
use JVBase\rest\routes\OptionsRoutes;
|
use JVBase\rest\routes\ReferralRoutes;
|
use JVBase\rest\routes\ResponseRoutes;
|
use JVBase\rest\routes\SEORoutes;
|
use JVBase\rest\routes\SettingsRoutes;
|
use JVBase\rest\routes\TermRoutes;
|
use JVBase\rest\routes\UploadRoutes;
|
use JVBase\rest\routes\VoteRoutes;
|
use UserRoutes;
|
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
|
class JVB
|
{
|
protected static JVB|null $instance = null;
|
protected array $managers = [];
|
protected array $content = [];
|
protected array $taxonomies = [];
|
protected array $blocks = [];
|
protected array $routes = [];
|
protected CustomBlocks $customBlocks;
|
|
|
|
public static function getInstance(): JVB
|
{
|
if (self::$instance === null) {
|
self::$instance = new self();
|
}
|
return self::$instance;
|
}
|
|
|
private function __construct()
|
{
|
}
|
|
public function routes($route): mixed
|
{
|
if (array_key_exists($route, $this->routes)) {
|
return $this->routes[$route];
|
}
|
return false;
|
}
|
|
|
public function getFields($type): array
|
{
|
return Registrar::getFieldsFor($type)??[];
|
}
|
|
/**
|
* @deprecated Should use the Registrar::getInstance
|
* @param $type
|
* @return mixed
|
*/
|
public function getContent($type): mixed
|
{
|
return $this->content[$type] ?? $this->taxonomies[$type] ?? $this->blocks[$type] ?? null;
|
}
|
|
}
|