From 47e77f9fac1155c536b2b87fec552c7fcce66fa6 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 01 Jun 2026 18:06:34 +0000
Subject: [PATCH] =Timeline block fixes. Next up: adding article schema classes

---
 inc/helpers/formatting.php |   69 ++++++++++++++--------------------
 1 files changed, 28 insertions(+), 41 deletions(-)

diff --git a/inc/helpers/formatting.php b/inc/helpers/formatting.php
index de3d379..38d6941 100644
--- a/inc/helpers/formatting.php
+++ b/inc/helpers/formatting.php
@@ -1,6 +1,8 @@
 <?php
 
-use JVBase\managers\CacheManager;
+use JVBase\managers\Cache;
+use JVBase\meta\Meta;
+use JVBase\utility\Image;
 
 if (!defined('ABSPATH')) {
 	exit;
@@ -67,40 +69,38 @@
 
 /**
  * @param int $ID
- * @param JVBase\meta\MetaManager|null $meta
- *
+ * @param string $type 'post', 'user', or 'term'
  * @return string
  */
-function jvbFormatRating(int $ID, JVBase\meta\MetaManager|null $meta = null):string
+function jvbFormatRating(int $ID, string $type = 'post'):string
 {
-    $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS);
-    $key = 'rating';
-    $cached = $cache->get($key);
-    $cached = false;
+    $cache = Cache::for('rating', WEEK_IN_SECONDS)->connect('post')->connect('taxonomy')->connect('user');
+
+    $cached = $cache->get($ID);
     if ($cached) {
         return $cached;
     }
 
-    if (!$meta) {
-        if (term_exists((int)$ID)) {
-            $type = 'term';
-        } elseif (get_post_status((int)$ID)) {
-            $type = 'post';
-        } else {
-            $type = 'user';
-        }
-        $meta = new JVBase\meta\MetaManager($ID, $type);
-    }
+	$meta = match ($type) {
+		'term' => Meta::forTerm($ID),
+		'post'	=> Meta::forPost($ID),
+		'user'	=> Meta::forUser($ID),
+		default => false
+	};
+	if (!$type) {
+		return '';
+	}
+
 
     $out = '';
-    $avg = $meta->getValue('average_rating');
+    $avg = $meta->get('average_rating');
 
-    $total = $meta->getValue('total_ratings');
+    $total = $meta->get('total_ratings');
     if ($avg !== 'none') {
         $out .= jvbFormatStarRating($avg, (int)$total);
     }
 
-    $cache->set($key, $out);
+    $cache->set($ID, $out);
     return $out;
 }
 
@@ -137,26 +137,8 @@
  */
 function jvbImageData(int $imgID):array
 {
-    $cache = CacheManager::for('imageData', WEEK_IN_SECONDS);
-    $cached = $cache->get($imgID);
-    if ($cached) {
-        return $cached;
-    }
-
-    if (!wp_get_attachment_image($imgID, 'tiny')) {
-        return [];
-    }
-    $image = [
-        'tiny' 			=> wp_get_attachment_image_src($imgID, 'tiny')[0],
-        'small' 		=> wp_get_attachment_image_src($imgID, 'medium')[0],
-        'medium' 		=> wp_get_attachment_image_src($imgID, 'large')[0],
-        'large' 		=> wp_get_attachment_image_src($imgID, 'full')[0],
-        'image-alt-text'=> get_post_meta($imgID, '_wp_attachment_image_alt', true),
-		'image-title'	=> get_the_title($imgID),
-		'image-caption' => get_the_excerpt($imgID),
-    ];
-    $cache->set($imgID, $image);
-    return $image;
+	$image = new Image();
+	return $image->getImageData($imgID);
 }
 
 
@@ -233,3 +215,8 @@
 	}
 	return 'tel:+1'.$phoneNumber;
 }
+
+function jvbFormatString(string $string):string
+{
+	return html_entity_decode($string);
+}

--
Gitblit v1.10.0