Jake Vanderwerf
2026-04-15 c4aa5cdb5e90ad4b420e22772797d16980232a2b
activate.php
@@ -2,8 +2,15 @@
use JVBase\integrations\Umami;
use JVBase\managers\Cache;
use JVBase\managers\CustomTable;
use JVBase\managers\DirectoryManager;
use JVBase\managers\ErrorHandler;
use JVBase\managers\InvitationsManager;
use JVBase\managers\queue\Queue;
use JVBase\managers\ReferralManager;
use JVBase\managers\RoleManager;
use JVBase\managers\SEO\SEOAdminPage;
use JVBase\registrar\Registrar;
use JVBase\utility\Features;
if (!defined('ABSPATH')) {
@@ -12,21 +19,23 @@
function jvbActivatePlugin():void
{
   $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();
   Queue::defineTables();
   CustomTable::ensureTables();
//    (new JVBase\registry\CheckCustomTables())->maybeCreateTables();
   error_log('Tables created!');
    // Store schema version
@@ -35,7 +44,9 @@
    jvbSchedules();
   error_log('Schedules done!');
   error_log('checking Admin capabilities...');
    jvbAddAdminCaps();
   jvb_register_do_once('admin_caps', 'jvbAddAdminCaps');
   error_log('Admin caps done!');
   error_log('Removing unneeded roles...');
    remove_role('contributor');
@@ -49,19 +60,23 @@
      Umami::createTables();
   }
   JVB()->directories()->activate();
// if (Features::forSite()->has('is_directory')) {
//    error_log('Activating DirectoryManager');
//    jvb_register_do_once('buildDirectory', ['JVBase\managers\DirectoryManager', 'activate']);
// }
   error_log('Activation done! Huzzah!');
}
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,
@@ -93,14 +108,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);
@@ -109,7 +125,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()
@@ -145,16 +161,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',
@@ -265,5 +281,5 @@
   if (Features::forSite()->has('referrals')){
      ReferralManager::addSubpage();
   }
   SEOAdminPage::addSubpage();
// SEOAdminPage::addSubpage();
}