Jake Vanderwerf
2026-04-15 c4aa5cdb5e90ad4b420e22772797d16980232a2b
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
96
97
98
99
<?php
 
use JVBase\managers\Cache;
use JVBase\managers\IconsManager;
use JVBase\registrar\Registrar;
use JVBase\utility\Features;
 
require(JVB_DIR . '/inc/managers/ScriptLoader.php');
require(JVB_DIR . '/inc/managers/CustomTable.php');
//require(JVB_DIR . '/inc/managers/CacheManager.php');
require(JVB_DIR . '/inc/managers/Cache.php');
class_alias('JVBase\managers\Cache', 'JVBase\managers\CacheManager');
 
 
require(JVB_DIR . '/inc/managers/IconsManager.php');
add_action('init', 'jvbInit', 1); // Priority 1 - very early
function jvbInit(): void
{
 
    Cache::registerHooks();
    // Initialize base sources (this registers hooks and includes defaults)
    IconsManager::for();
    IconsManager::for('forms');
 
    // Only initialize dash if feature is enabled
    if (Features::forSite()->has('dashboard')) {
        IconsManager::for('dash');
    }
}
require(JVB_DIR . '/inc/managers/ErrorHandler.php');
require(JVB_DIR . '/inc/managers/queue/_setup.php');
//require(JVB_DIR . '/inc/managers/OperationQueue.php');
require(JVB_DIR . '/inc/managers/EmailManager.php');
 
if (Features::forSite()->has('magicLink')) {
    require(JVB_DIR . '/inc/managers/MagicLinkManager.php');
}
 
require(JVB_DIR . '/inc/managers/LoginManager.php');
 
 
//IF SITE HAS DASHBOARD AND FEED BLOCK
//if (Features::forSite()->hasAny(['dashboard', 'feed_block'])) {
    require(JVB_DIR . '/inc/forms/TaxonomySelector.php');
//}
 
//IF SITE HAS DASHBOARD
if (Features::forSite()->has('dashboard')) {
    require(JVB_DIR . '/inc/managers/CRUDManager.php');
    require(JVB_DIR . '/inc/managers/UploadManager.php');
}
 
//IF SITE HAS FEED BLOCK
if (Features::forSite()->has('feed_block')) {
    require(JVB_DIR . '/inc/managers/TaxonomyRelationships.php');
    new JVBase\managers\TaxonomyRelationships();
}
 
//if (Features::forSite()->hasAll(['dashboard', 'membership', 'feed_block'])) {
    require(JVB_DIR . '/inc/managers/UserTermsManager.php');
    new JVBase\managers\UserTermsManager();
//}
 
if (Features::forSite()->has('notifications')) {
    require(JVB_DIR . '/inc/managers/Notifications/Content.php');
    require(JVB_DIR . '/inc/managers/Notifications/EmailDigests.php');
    require(JVB_DIR . '/inc/managers/Notifications/Notifications.php');
    require(JVB_DIR . '/inc/managers/Notifications/Preferences.php');
    require(JVB_DIR . '/inc/managers/NotificationManager.php');
 
}
 
if (Features::forMembership()->has('forum') && !empty(Registrar::getFeatured('is_content', 'term'))) {
    require(JVB_DIR . '/inc/managers/NewsRelationships.php');
}
 
if (Features::forMembership()->has('invitable')) {
    require(JVB_DIR . '/inc/managers/Invitations.php');
}
 
//
//require(JVB_DIR . '/inc/managers/SchemaManager.php');
//require(JVB_DIR . '/inc/managers/SEOMetaManager.php');
require(JVB_DIR . '/inc/managers/SEO/_setup.php');
if (Features::forSite()->has('is_directory')) {
    require(JVB_DIR . '/inc/managers/DirectoryManager.php');
}
require(JVB_DIR . '/inc/managers/ImageGenerator.php');
require(JVB_DIR . '/inc/managers/AdminPages.php');
require(JVB_DIR . '/inc/managers/RoleManager.php');
 
 
if (Features::forSite()->has('dashboard')) {
    require(JVB_DIR . '/inc/managers/DashboardManager.php');
}
 
if (Features::forSite()->has('referrals')) {
    require(JVB_DIR . '/inc/managers/ReferralManager.php');
}