Jake Vanderwerf
2026-08-27 d7c8752b4d8f688a13645130d4c3237efd5ad1bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?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;
    }
 
}