From a58a2e7ca4700d3e23341fde767060a4c2c704a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 30 Aug 2026 21:04:37 +0000
Subject: [PATCH] =Minor tweaks to MenuBlock.php
---
inc/rest/Rest.php | 49 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 34 insertions(+), 15 deletions(-)
diff --git a/inc/rest/Rest.php b/inc/rest/Rest.php
index dd6c9cb..cc2caef 100644
--- a/inc/rest/Rest.php
+++ b/inc/rest/Rest.php
@@ -1,10 +1,13 @@
<?php
namespace JVBase\rest;
+use JVBase\integrations\services\Cloudflare;
use JVBase\managers\Cache;
+use JVBase\managers\Errors;
use JVBase\meta\Meta;
use JVBase\registrar\Registrar;
use JVBase\base\Site;
+use JVBase\rest\routes\TermRoutes;
use WP_REST_Request;
use WP_REST_Response;
use Exception;
@@ -30,7 +33,7 @@
protected string $namespace = 'jvb/v1';
protected ?Cache $cache = null;
protected string $cacheName = '';
- protected int $cacheTtl = 3600;
+ protected int $cacheTtl = HOUR_IN_SECONDS;
protected static ?string $action;
public function __construct()
@@ -39,9 +42,15 @@
$this->cache = Cache::for($this->cacheName, $this->cacheTtl);
}
- add_action('rest_api_init', [$this, 'registerRoutes']);
+ add_action('rest_api_init', [$this, 'registerRoutes'], 10);
+ add_action('rest_api_init', [$this, 'ensureDefinitions'], 9);
}
+ public function ensureDefinitions():void
+ {
+ Site::getInstance();
+ Registrar::ensureInstanced();
+ }
/**
* Register routes - implement using Route builder
*/
@@ -174,7 +183,7 @@
/**
* Convert MySQL datetime to ISO 8601 timestamp
*/
- protected function formatTimestamp(?string $mysqlDatetime): ?string
+ public function formatTimestamp(?string $mysqlDatetime): ?string
{
return Response::formatTimestamp($mysqlDatetime);
}
@@ -224,7 +233,7 @@
// Keep existing author filtering logic
$authorQuery = [];
- foreach (Registrar::getFeatured('can_create', 'user') as $type) {
+ foreach (Registrar::withFeature('can_create', 'user') as $type) {
if (array_key_exists($type, $data)) {
$artist_ids = array_map(
'absint',
@@ -477,10 +486,20 @@
*/
protected function checkUser(int $userId): bool
{
- $cache = Cache::for('checkUser', DAY_IN_SECONDS)->connect('user');
+ $cache = Cache::for('checkUser', 'user',DAY_IN_SECONDS);
return $cache->remember($userId, fn() => (bool) get_userdata($userId));
}
+ protected function checkArray(string $value, array $search, bool $lowercase = true):string|false
+ {
+ if ($lowercase) {
+ $value = strtolower($value);
+ }
+
+ return in_array($value, $search) ? $value : false;
+
+ }
+
/**
* Check if term exists (cached)
*/
@@ -493,7 +512,7 @@
return false;
}
- $cache = Cache::for('checkTerm', DAY_IN_SECONDS)->connect('taxonomy');
+ $cache = Cache::for('checkTerm', 'term', DAY_IN_SECONDS);
return $cache->remember($termId, fn() => (bool) term_exists($termId, jvbCheckBase($taxonomy)));
}
@@ -502,7 +521,7 @@
*/
protected function isVerifiedUser(int $userId): bool
{
- $cache = Cache::for('verifiedUsers', DAY_IN_SECONDS)->connect('user');
+ $cache = Cache::for('verifiedUsers', 'user',DAY_IN_SECONDS);
return $cache->remember($userId, fn() => user_can($userId, 'skip_moderation'));
}
@@ -537,7 +556,7 @@
return false;
}
$post_types = is_array($args['post_type']) ? $args['post_type'] : [$args['post_type']];
- $hasTimeline = array_map(function($item) { return jvbCheckBase($item); },Registrar::getFeatured('is_timeline', 'post'));
+ $hasTimeline = array_map(function($item) { return jvbCheckBase($item); },Registrar::withFeature('is_timeline', 'post'));
return !empty(array_intersect($post_types, $hasTimeline));
}
// =========================================================================
@@ -549,11 +568,11 @@
*/
protected function verifyTurnstile(string $token): bool
{
- if (!Site::hasIntegration('cloudflare') || !JVB()->connect('cloudflare')->isSetUp()) {
+ if (!Site::hasIntegration('cloudflare') || !Cloudflare::getInstance()->isSetUp()) {
return true;
}
- return !empty($token) && JVB()->connect('cloudflare')->verifyTurnstile($token);
+ return !empty($token) && Cloudflare::getInstance()->verifyTurnstile($token);
}
/**
@@ -626,7 +645,7 @@
]);
try {
- JVB()->error()->log('security_audit', $event, $context, 'info');
+ Errors::getInstance()->log('security_audit', $event, $context, 'info');
} catch (Exception $e) {
error_log("Security Audit: {$event} - " . json_encode($context));
}
@@ -638,7 +657,7 @@
protected function logError(string $message, array $context = [], string $severity = 'error'): void
{
try {
- JVB()->error()->log(static::class, $message, $context, $severity);
+ Errors::getInstance()->log(static::class, $message, $context, $severity);
} catch (Exception $e) {
error_log(static::class . " Error: {$message} - " . json_encode($context));
}
@@ -872,12 +891,12 @@
return $terms;
}
$ids = array_map('absint', explode(',',$value));
- $cache = Cache::for('term_data')->connect('taxonomy');
+ $cache = Cache::for('term_data','term');
$cache->flush();
if (!array_key_exists($taxonomy, $terms)) {
$terms[$taxonomy] = [];
$registrar = Registrar::getInstance($taxonomy);
- $terms[$taxonomy]['icon'] = $registrar ? $registrar->getIcon() : jvbDefaultIcon();;
+ $terms[$taxonomy]['icon'] = $registrar ? $registrar->getIcon() : jvbDefaultIcon();
}
foreach ($ids as $id) {
$data = $cache->remember(
@@ -890,7 +909,7 @@
'name' => $term->name,
'slug' => $term->slug,
'parent' => $term->parent,
- 'path' => JVB()->routes('term')->getTermPath($term->term_id, $term->name, $taxonomy),
+ 'path' => TermRoutes::getInstance()->getTermPath($term->term_id, $term->name, $taxonomy),
'taxonomy' => jvbNoBase($term->taxonomy),
'count' => $term->count,
];
--
Gitblit v1.10.0