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/Rest.php | 30 +++++++++---------------------
1 files changed, 9 insertions(+), 21 deletions(-)
diff --git a/inc/rest/Rest.php b/inc/rest/Rest.php
index 6435ec8..406a3ab 100644
--- a/inc/rest/Rest.php
+++ b/inc/rest/Rest.php
@@ -2,6 +2,7 @@
namespace JVBase\rest;
use JVBase\managers\Cache;
+use JVBase\registrar\Registrar;
use JVBase\utility\Features;
use WP_REST_Request;
use WP_REST_Response;
@@ -207,7 +208,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',
@@ -240,7 +241,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;
@@ -305,19 +306,19 @@
$content = jvbNoBase($post_type);
// Get config for this content type
- $config = Features::getConfig($content);
- if (!$config) {
+ $registrar = Registrar::getInstance($content);
+ if (!$registrar) {
return null;
}
// Check if this orderby is a custom order
- $customOrders = $config['custom_order'] ?? [];
+ $customOrders = $registrar->custom_order??[];
if (empty($customOrders) || !isset($customOrders[$orderby])) {
return null;
}
// Get field definition
- $fields = $config['fields'] ?? [];
+ $fields = $registrar->getFields() ?? [];
if (!isset($fields[$orderby])) {
return null;
}
@@ -456,15 +457,6 @@
}
/**
- * Check if content type exists
- */
- protected function checkContent(string $content, bool $returnBool = false): string|bool
- {
- $result = JVB_CONTENT[$content] ?? JVB_TAXONOMY[$content] ?? JVB_USER[$content] ?? '';
- return $returnBool ? ($result !== '') : $result;
- }
-
- /**
* Check if user exists (cached)
*/
protected function checkUser(int $userId): bool
@@ -526,12 +518,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;
+ $hasTimeline = array_map(function($item) { return jvbCheckBase($item); },Registrar::getFeatured('is_timeline', 'post'));
+ return !empty(array_intersect($post_types, $hasTimeline));
}
// =========================================================================
// SECURITY
--
Gitblit v1.10.0