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.
---
inc/rest/RestRouteManager.php | 27 ++++++++++++++-------------
1 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/inc/rest/RestRouteManager.php b/inc/rest/RestRouteManager.php
index e3122e6..f66f860 100644
--- a/inc/rest/RestRouteManager.php
+++ b/inc/rest/RestRouteManager.php
@@ -3,8 +3,7 @@
use DateTime;
use DateTimeZone;
-use JVBase\JVB;
-use JVBase\rest\RateLimiter;
+use JVBase\registrar\Registrar;
use JVBase\managers\OperationQueue;
use JVBase\managers\Cache;
use JVBase\managers\NotificationManager;
@@ -284,6 +283,12 @@
});
}
+ /**
+ * @deprecated
+ * @param array $args
+ * @param array $data
+ * @return array
+ */
protected function applyTaxonomyFilters(array $args, array $data):array
{
// Handle JSON-encoded taxonomy data
@@ -322,7 +327,7 @@
// Keep existing author filtering logic
$authorQuery = [];
- foreach (jvbAuthorUsers() as $type) {
+ foreach (Registrar::getFeatured('can_create', 'user') as $type) {
if (array_key_exists($type, $data)) {
$artist_ids = array_map(
'absint',
@@ -352,7 +357,7 @@
//Handle random
if (array_key_exists('orderby', $data) && $data['orderby'] === 'random') {
- $current_seed = jvbGetRandomSeed();
+ $current_seed = floor(time() / 1800);
$args['orderby'] = 'RAND(' . $current_seed . ')';
unset($args['order']);
return $args;
@@ -417,19 +422,19 @@
$content = jvbNoBase($post_type);
// Get config for this content type
- $config = Features::getConfig($content);
+ $config = Registrar::getInstance($content);
if (!$config) {
return null;
}
// Check if this orderby is a custom order
- $customOrders = $config['custom_order'] ?? [];
+ $customOrders = $config->custom_order ?? [];
if (empty($customOrders) || !isset($customOrders[$orderby])) {
return null;
}
// Get field definition
- $fields = $config['fields'] ?? [];
+ $fields = $config->getFields()??[];
if (!isset($fields[$orderby])) {
return null;
}
@@ -478,12 +483,8 @@
protected function isTimeline($args, $data):bool
{
$post_types = is_array($args['post_type']) ? $args['post_type'] : [$args['post_type']];
- foreach ($post_types as $type) {
- if (Features::forContent($type)->has('is_timeline')) {
- return true;
- }
- }
- return false;
+ $areTimeline = array_map(function($type) { return BASE.$type; },Registrar::getFeatured('is_timeline', 'post'));
+ return !empty(array_intersect($post_types, $areTimeline));
}
protected function applyDateFilters(array $args, array $data):array
--
Gitblit v1.10.0