From 56a9a1ccf764ff7a6af8f8a2292cb07443cb4aa7 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 28 May 2026 18:19:57 +0000
Subject: [PATCH] =New Gitbit setpu

---
 activate.php |  116 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 54 insertions(+), 62 deletions(-)

diff --git a/activate.php b/activate.php
index 0dad565..c76a65d 100644
--- a/activate.php
+++ b/activate.php
@@ -1,9 +1,14 @@
 <?php
 
-use JVBase\integrations\Umami;
+use JVBase\managers\Cache;
+use JVBase\managers\CustomTable;
+use JVBase\base\Site;
+use JVBase\managers\DashboardManager;
+use JVBase\managers\DirectoryManager;
+use JVBase\managers\queue\Queue;
 use JVBase\managers\ReferralManager;
-use JVBase\managers\SEO\SEOAdminPage;
-use JVBase\utility\Features;
+use JVBase\managers\RoleManager;
+use JVBase\registrar\Registrar;
 
 if (!defined('ABSPATH')) {
     exit; // Exit if accessed directly
@@ -11,22 +16,24 @@
 
 function jvbActivatePlugin():void
 {
-	ob_start();
-	$validator = new JVBase\utility\Validator();
-	$validation = $validator->validateAll();
-	error_log('Validation result: '.print_r($validation, true));
-	$checker = JVBase\utility\Checker::getInstance();
-	error_log('Doing our activation action...');
+//	$validator = new JVBase\utility\Validator();
+//	$validation = $validator->validateAll();
+//	error_log('Validation result: '.print_r($validation, true));
+//	$checker = JVBase\utility\Checker::getInstance();
+//	error_log('Doing our activation action...');
 	// Get ContentRegistry instance early
-	$registry = new JVBase\registry\ContentRegistry();
+//	$registry = new JVBase\registry\ContentRegistry();
 	// Initialize content types
-	$registry->onActivation();
-	$checker->invalidateContentCache();
-	$checker->invalidateTaxonomyCache();
+//	$registry->onActivation();
+//	$checker->invalidateContentCache();
+//	$checker->invalidateTaxonomyCache();
     do_action(BASE.'activation');
 	error_log('Action done!');
 	error_log('Checking custom tables...');
-    (new JVBase\registry\CheckCustomTables())->maybeCreateTables();
+	CustomTable::ensureTables();
+	error_log('Dashboard is setup: '.print_r(JVB()->dashboard(), true));
+
+//    (new JVBase\registry\CheckCustomTables())->maybeCreateTables();
 	error_log('Tables created!');
 
     // Store schema version
@@ -34,48 +41,32 @@
 	error_log('Starting schedules...');
     jvbSchedules();
 	error_log('Schedules done!');
-	error_log('checking Admin capabilities...');
-    jvbAddAdminCaps();
-	error_log('Admin caps done!');
-	error_log('Removing unneeded roles...');
-    remove_role('contributor');
-    remove_role('author');
-    remove_role('editor');
-	error_log('Roles removed!');
-	error_log('New Roles done!');
+
+	RoleManager::activate();
+
 	jvbRegisterAdminPages();
-	if (array_key_exists('integrations', JVB_SITE) && array_key_exists('umami', JVB_SITE['integrations']) && JVB_SITE['integrations']['umami']=== true) {
-		error_log('Adding Umami tables');
-		Umami::createTables();
-	}
+//	if (array_key_exists('integrations', JVB_SITE) && array_key_exists('umami', JVB_SITE['integrations']) && JVB_SITE['integrations']['umami']=== true) {
+//		error_log('Adding Umami tables');
+//		Umami::createTables();
+//	}
+
+//	if (Site::has('is_directory')) {
+//		error_log('Activating DirectoryManager');
+//		jvb_register_do_once('buildDirectory', ['JVBase\managers\DirectoryManager', 'activate']);
+//	}
 	error_log('Activation done! Huzzah!');
-
-	$output = ob_get_clean();
-	if ( $output ) {
-		// Grab a backtrace to see what caused the output
-		$trace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
-		$formatted = [];
-		foreach ( $trace as $step ) {
-			if ( isset( $step['file'], $step['line'] ) ) {
-				$formatted[] = $step['file'] . ':' . $step['line'];
-			}
-		}
-
-		error_log( "⚠️ Plugin activation produced unexpected output (" . strlen( $output ) . " chars)" );
-		error_log( "Output: " . trim( $output ) );
-		error_log( "Backtrace: " . implode( ' <- ', $formatted ) );
-	}
 }
 
 function jvbAddAdminCaps()
 {
-	$roleManager = new \JVBase\managers\RoleManager();
+	$roleManager = new RoleManager();
+
 
 	$role = get_role('administrator');
 	$users = get_users(['role' => 'administrator']);
-    foreach (JVB_CONTENT as $slug => $config) {
-
-		$plural = strtolower($config['plural']);
+    foreach (array_merge(Registrar::getRegistered('post'), Registrar::getFeatured('is_content')) as $slug) {
+		error_log('Adding administrative roles to '.$slug);
+		$plural = $roleManager->getContentPlural($slug);
 		$capabilities = [
 			'edit_' . $plural,
 			'edit_published_' . $plural,
@@ -107,14 +98,15 @@
 function jvbGrantAdminUserCaps()
 {
 	// Only run once after activation
-	if (get_option('jvb_admin_caps_granted') === '1') {
+	if (get_option(BASE.'admin_caps_granted') === '1') {
 		return;
 	}
 
-	$roleManager = new \JVBase\managers\RoleManager();
+	$roleManager = new RoleManager();
 	$users = get_users(['role' => 'administrator']);
 
-	foreach (JVB_CONTENT as $slug => $config) {
+	foreach (array_merge(Registrar::getRegistered('post'), Registrar::getFeatured('is_content', 'term')) as $slug) {
+
 		foreach ($users as $user) {
 			// These methods should check if post type exists before adding caps
 			$roleManager->grantContent($user, $slug);
@@ -123,7 +115,7 @@
 	}
 
 	// Mark as complete to prevent running again
-	update_option('jvb_admin_caps_granted', '1');
+	update_option(BASE.'admin_caps_granted', '1');
 	remove_action('init', 'jvbGrantAdminUserCaps', 99);
 }
 function jvbScheduledHooks()
@@ -159,16 +151,16 @@
             'time'              => '12:03am tomorrow',
         ],
         //NotificationManager.php
-        'jvb_notification_digest_daily' =>
+        BASE.'notification_digest_daily' =>
             [
                 'time'  => '8:08am tomorrow',
             ],
-        'jvb_notification_digest_weekly' =>
+        BASE.'notification_digest_weekly' =>
             [
                 'time'       => 'monday 6:07am',
                 'recurrence' => 'weekly',
             ],
-        'jvb_notification_digest_monthly' =>
+        BASE.'notification_digest_monthly' =>
             [
                 'time'       => '2025-05-05 9:00am',
                 'recurrence' => 'monthly',
@@ -203,6 +195,7 @@
     jvbDeleteOptions();
     jvbDeleteDashboard();
     jvbDeleteDirectories();
+	Cache::flushAll();
     do_action('jvbDeactivate');
 }
 
@@ -238,14 +231,13 @@
     $pages = new WP_Query([
         'post_type' => BASE.'directory',
         'posts_per_page'    => -1,
-        'post_status'   => 'any',
+        'post_status'   => ['publish', 'draft','trash'],
         'fields'    => 'ids'
     ]);
-    if ($pages->have_posts()) {
-        foreach ($pages->posts as $ID) {
-            wp_delete_post($ID, true);
-        }
-    }
+	foreach ($pages->posts as $ID) {
+		wp_delete_post($ID, true);
+	}
+
 }
 function jvbClearSchedules()
 {
@@ -276,8 +268,8 @@
 
 function jvbRegisterAdminPages():void
 {
-	if (Features::forSite()->has('referrals')){
+	if (Site::has('referrals')){
 		ReferralManager::addSubpage();
 	}
-	SEOAdminPage::addSubpage();
+//	SEOAdminPage::addSubpage();
 }

--
Gitblit v1.10.0