From 86c6cd3cc099d2480932ede03c12cea01e625c94 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 26 Apr 2026 21:56:28 +0000
Subject: [PATCH] =Requiring files based on Site class settings
---
inc/managers/DashboardManager.php | 64 ++++++++++++--------------------
1 files changed, 24 insertions(+), 40 deletions(-)
diff --git a/inc/managers/DashboardManager.php b/inc/managers/DashboardManager.php
index a6fea2d..68f7fe3 100644
--- a/inc/managers/DashboardManager.php
+++ b/inc/managers/DashboardManager.php
@@ -2,10 +2,9 @@
namespace JVBase\managers;
use JVBase\forms\TaxonomySelector;
-use JVBase\managers\CRUD;
+use JVBase\base\Site;
use JVBase\meta\Form;
-use JVBase\meta\Meta;
-use JVBase\registrar\Registrar;use JVBase\utility\Features;
+use JVBase\registrar\Registrar;
use JVBase\ui\Navigation;
use WP_User;
@@ -400,11 +399,11 @@
// if ($page === 'integrations' || in_array($page, $integrationSlugs)) {
// // Check integration access
// if ($page === 'integrations') {
-// if (!Features::hasAnyIntegration('user', $this->role)) {
+// if (!Site::hasAnyIntegration('user', $this->role)) {
// $this->redirectToDashboard();
// }
// } else {
-// if (!Features::hasIntegration($page, 'user', $this->role)) {
+// if (!Site::hasIntegration($page, 'user', $this->role)) {
// $this->redirectToDashboard();
// }
// }
@@ -530,7 +529,7 @@
switch ($page) {
case 'notifications':
- if (Features::forSite()->has('notifications')) {
+ if (Site::has('notifications')) {
wp_enqueue_script('jvb-notification-manager');
}
break;
@@ -570,7 +569,7 @@
wp_enqueue_script('jvb-crud');
break;
}
- if (Features::forSite()->has('favourites')) {
+ if (Site::has('favourites')) {
wp_enqueue_script('jvb-favourites');
wp_localize_script('jvb-favourites-manager', 'favouritesSettings', [
'strings' => [
@@ -586,7 +585,7 @@
wp_enqueue_script('jvb-creator');
- if (Features::forSite()->has('forum')) {
+ if (Site::has('forum')) {
wp_enqueue_script('jvb-news');
}
do_action('jvbDashScripts', $page);
@@ -867,7 +866,7 @@
return $content;
}
- if (Features::forSite()->has('referrals')) {
+ if (Site::has('referrals')) {
$whatever = JVB()->referrals()->getReferralWelcomeMessage($this->user->ID);
if (!empty($whatever)) {
return $whatever;
@@ -981,7 +980,7 @@
$connection = (array_key_exists($page, $map)) ? $map[$page] : $page;
if ($connection !== 'integrations') {
- $userID = (Features::forSite()->has('has_membership')) ? $this->user->ID : null;
+ $userID = (Site::has('has_membership')) ? $this->user->ID : null;
$integration = JVB()->connect($connection, $userID);
echo '<h1>Managing '.$integration->title.'</h1>';
@@ -1258,27 +1257,27 @@
$pages = [];
$pages[] = 'SEO';
// Add feature-dependent pages (non-config)
- if (Features::forSite()->has('referrals')) {
+ if (Site::has('referrals')) {
$pages[] = 'Referrals';
}
-
- if (Features::forMembership()->has('can_invite')) {
+ $membership = Site::membership();
+ if ($membership && $membership->has('can_invite')) {
$pages[] = 'Invites';
}
- if (Features::forMembership()->has('term_approval')) {
+ if ($membership && $membership->has('term_approval')) {
$pages[] = 'Approvals';
}
- if (Features::forMembership()->has('forum')) {
+ if ($membership && $membership->has('forum')) {
$pages[] = 'News';
}
- if (Features::forMembership()->has('member_content')) {
+ if ($membership && $membership->has('member_content')) {
$pages[] = 'Metrics';
}
- if (Features::forSite()->has('favourites')) {
+ if (Site::has('favourites')) {
$pages[] = 'Favourites';
}
@@ -1286,15 +1285,15 @@
$pages[] = 'Karmic Score';
}
- if (Features::forSite()->has('notifications')) {
+ if (Site::has('notifications')) {
$pages[] = 'Notifications';
}
- if (Features::forSite()->has('support')) {
+ if (Site::has('support')) {
$pages[] = 'Support';
}
- if (Features::hasAnyIntegration()) {
+ if (Site::hasAnyIntegration()) {
$pages[] = 'Integrations';
}
@@ -1324,21 +1323,6 @@
return $pages;
}
- /**
- * Get pages available to a specific role
- * @param string $role The role slug (with or without BASE prefix)
- * @return array
- */
- protected function getRolePages(string $role):array
- {
- $role = jvbNoBase($role);
-
- if (!Registrar::getInstance($role)){
- return [];
- }
-
- return Features::forUser($role)->getDashboardPages();
- }
/**
* Get pages that a specific user is allowed to access
@@ -1402,7 +1386,7 @@
switch ($slug) {
case 'Integrations':
foreach($roles as $role) {
- if (Features::hasAnyIntegration('user', $role)) {
+ if (Registrar::getInstance($role)->hasAnyIntegrations()) {
$remove = false;
}
}
@@ -1423,7 +1407,7 @@
break;
case 'Approvals':
$canApprove = false;
- if (Features::forMembership()->has('term_approval')) {
+ if ($membership && $membership->has('term_approval')) {
if (array_key_exists('can_approve', JVB_MEMBERSHIP)) {
foreach ($roles as $role) {
if (in_array($role, JVB_MEMBERSHIP['can_approve'])) {
@@ -1454,14 +1438,14 @@
break;
case 'metrics':
foreach ($roles as $role) {
- if (!empty(Features::forUser($role)->getCreatableContent())) {
+ if (!empty(Registrar::getInstance($role)?->getCreatable())) {
$remove = false;
}
}
break;
case 'karmic-score':
foreach ($roles as $role) {
- $contents = Features::forUser($role)->getCreatableContent();
+ $contents = Registrar::getInstance($role)?->getCreatable();
if (!empty($contents)) {
$hasKarma = Registrar::getFeatured('karma');
$remove = empty(array_intersect($contents, $hasKarma));
@@ -1510,7 +1494,7 @@
$creatable = [];
foreach ($roles as $role) {
- $roleCreatable = Features::forUser($role)->getCreatableContent();
+ $roleCreatable = Registrar::getInstance($role)?->getCreatable();
$creatable = array_merge($creatable, $roleCreatable);
}
--
Gitblit v1.10.0