From 772462eeca3002a1d52508aeba485aab2b4742ad Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 03 Mar 2026 19:06:19 +0000
Subject: [PATCH] =MAJOR OVERHAUL. Likely should have made a new branch ages ago. Key changes: Registrar.php is the base for custom post types, taxonomies, and user roles. Replaces JVB_CONTENT, JVB_TAXONOMY, and JVB_USER constants, eliminates most of Features.php (except for JVB_SITE, JVB_MEMBERSHIP), and has built in sanitizing and validation via sub-classes. Also started a major overhaul of the Schema output. Created a shit ton of property traits and classes to help sanitize and ensure proper data for different schema types. Still a bunch to do, but better to be starting committing changes here on this other branch.
---
activate.php | 59 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 35 insertions(+), 24 deletions(-)
diff --git a/activate.php b/activate.php
index 8287709..a87076f 100644
--- a/activate.php
+++ b/activate.php
@@ -2,9 +2,13 @@
use JVBase\integrations\Umami;
use JVBase\managers\Cache;
+use JVBase\managers\CustomTable;
use JVBase\managers\DirectoryManager;
+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')) {
@@ -13,21 +17,24 @@
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
@@ -36,7 +43,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');
@@ -50,22 +59,23 @@
Umami::createTables();
}
- if (Features::forSite()->has('is_directory')) {
- error_log('Activating DirectoryManager');
- DirectoryManager::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,
@@ -97,14 +107,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);
@@ -113,7 +124,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()
@@ -269,5 +280,5 @@
if (Features::forSite()->has('referrals')){
ReferralManager::addSubpage();
}
- SEOAdminPage::addSubpage();
+// SEOAdminPage::addSubpage();
}
--
Gitblit v1.10.0