From d7dbe7fee362d587dfc334135d9581b6216a4295 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 23 Nov 2025 04:13:56 +0000
Subject: [PATCH] =Timeline block, and feed block updated. DataStore.js refactored to not block rendering

---
 inc/helpers/renderFields.php |   89 +++++++++++++++++++++++---------------------
 1 files changed, 47 insertions(+), 42 deletions(-)

diff --git a/inc/helpers/renderFields.php b/inc/helpers/renderFields.php
index 8786204..4817908 100644
--- a/inc/helpers/renderFields.php
+++ b/inc/helpers/renderFields.php
@@ -25,12 +25,16 @@
     string $labelAfter,
     string $on,
     string $off,
-    bool $hidden = false
+    bool $hidden = false,
+	array $data = []
 ):string {
     $hidden = ($hidden) ? ' hidden' : '';
+	$dataset = (!empty($data)) ? implode('', array_map(function ($key, $value) {
+		return ' data-'.$key.'="'.$value.'"';
+	}, array_keys($data), array_values($data))) : '';
     return sprintf(
-        '<div class="toggle-text" %s>
-            <input value="all" name="%s" id="%s" type="checkbox">
+        '<div class="toggle-text"%s>
+            <input value="all" name="%s" id="%s" type="checkbox"%s>
             <label for="%s" class="row">
                        %s
                 <span class="text row">
@@ -43,6 +47,7 @@
         $hidden,
         $name,
         $name,
+		$dataset,
         $name,
         $labelBefore,
         $off,
@@ -59,9 +64,8 @@
  */
 function jvbRenderLinks(int $ID, MetaManager|null $meta = null):string
 {
-    $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS);
-    $key = 'links';
-    $cached = $cache->get($key);
+    $cache = CacheManager::for('user_links', WEEK_IN_SECONDS)->connectTo('post')->connectTo('taxonomy');
+    $cached = $cache->get($ID);
     if ($cached) {
         return $cached;
     }
@@ -124,7 +128,7 @@
         }
         $out .= '</ul>';
     }
-    $cache->set($key, $out);
+    $cache->set($ID, $out);
     return $out;
 }
 
@@ -136,9 +140,9 @@
  */
 function jvbRenderContactInfo(int $ID, MetaManager|null $meta = null):string
 {
-    $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS);
-    $key = 'contact';
-    $cached = $cache->get($key);
+    $cache = CacheManager::for('contact', WEEK_IN_SECONDS)->connectTo('post')->connectTo('taxonomy');
+
+    $cached = $cache->get($ID);
     if($cached){
         return $cached;
     }
@@ -178,7 +182,7 @@
         $out .= '</ul>';
     }
 
-    $cache->set($key, $out);
+    $cache->set($ID, $out);
 
     return $out;
 }
@@ -365,7 +369,7 @@
 						<div class="field">
 							<input type="checkbox" id="select-all-group" name="select-all-group">
 							<label for="select-all-group">
-								Select All
+								Select All In Group
 							</label>
 						</div>
 						<div class="info" hidden>
@@ -532,38 +536,39 @@
 	$dataID = ($ID) ? ['image-id' => $ID] : false;
 	$addID = ($ID) ? '-'.$ID : '';
 
-	$fields = array_merge([
-		'image_data'	=> [
-			'type'	=> 'group',
-			'wrap'	=> 'details',
-			'label'	=> 'Image Info',
-			'hint'	=> 'These will be automatically generated if left blank.',
-			'fields'	=> [
-				'image-title'.$addID => [
-					'type'	=> 'text',
-					'label'	=> 'Image Title',
-					'value'	=> $title,
-					'data'	=> $dataID
-				],
-				'image-alt-text'.$addID => [
-					'type'	=> 'text',
-					'label'	=> 'Alt Text',
-					'value'	=> $alt,
-					'hint'	=> 'Alt text helps the visually impaired, as well as some benefits for SEO.',
-					'data'	=> $dataID
-				],
-				'image-caption'.$addID => [
-					'type'	=> 'textarea',
-					'value'	=> $caption,
-					'label'	=> 'Image Caption',
-					'data'	=> $dataID
-				]
-			]
+
+	$defaultFields = [
+		'image-title'.$addID => [
+			'type'	=> 'text',
+			'label'	=> 'Image Title',
+			'value'	=> $title,
+			'data'	=> $dataID
+		],
+		'image-alt-text'.$addID => [
+			'type'	=> 'text',
+			'label'	=> 'Alt Text',
+			'value'	=> $alt,
+			'hint'	=> 'Alt text helps the visually impaired, as well as some benefits for SEO.',
+			'data'	=> $dataID
+		],
+		'image-caption'.$addID => [
+			'type'	=> 'textarea',
+			'value'	=> $caption,
+			'label'	=> 'Image Caption',
+			'data'	=> $dataID
 		]
-	], $fields);
+	];
+	$fields = array_merge($defaultFields, $fields);
 
+	$config = [
+		'type'	=> 'group',
+		'wrap'	=> 'details',
+		'label'	=> 'Image Info',
+		'hint'	=> 'These will be automatically generated if left blank.',
+		'fields'	=> $fields
+	];
 
-	return $form->render('image_data',null, $fields,false, true);
+	return $form->render('image_data',null, $config,false, true);
 }
 
 
@@ -573,7 +578,7 @@
 		return '';
 	}
 
-	$cache = CacheManager::for('locations');
+	$cache = CacheManager::for('locations')->connectTo('taxonomy');
 	$key = $cache->generateKey($location);
 
 	$cached = false;

--
Gitblit v1.10.0