From 7935d26cd16a4f8f69a59a44e27a7263b60e54bf Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 14 Sep 2026 19:05:30 +0000
Subject: [PATCH] =Simple Calendar block up and running

---
 inc/blocks/TimelineBlock.php |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/inc/blocks/TimelineBlock.php b/inc/blocks/TimelineBlock.php
index c79392e..b8a388d 100644
--- a/inc/blocks/TimelineBlock.php
+++ b/inc/blocks/TimelineBlock.php
@@ -4,7 +4,7 @@
 use JVBase\managers\Cache;
 use JVBase\meta\Meta;
 use JVBase\registrar\Registrar;
-use JVBase\base\Site;
+use JVBase\rest\routes\ContentRoutes;
 use WP_Block;
 
 if (!defined('ABSPATH')) {
@@ -30,12 +30,12 @@
 
     public function __construct()
     {
-        $this->cache = Cache::for('timelines', WEEK_IN_SECONDS)->connect('post');
+        $this->cache = Cache::for('timelines', 'post', WEEK_IN_SECONDS);
 		if (JVB_TESTING){
 			$this->cache->flush();
 		}
         add_action('init', [ $this, 'registerBlock' ]);
-		add_action('wp_footer', 'jvbRenderGallery');
+		add_action('wp_footer', [$this, 'renderGallery']);
     }
 
     public function registerBlock()
@@ -59,13 +59,7 @@
         }
 		$this->content = jvbNoBase($post->post_type);
 
-		$this->children = get_children([
-			'post_parent' 	=> $this->parentID,
-			'post_status'	=> 'publish',
-			'orderby' 		=> 'date',
-			'order' 		=> 'ASC',
-			'fields' 		=> 'ids'
-		]);
+		$this->children = jvbTimelinePoints($this->parentID,$post->post_type);
 		$this->total = count($this->children);
 
         ob_start();
@@ -79,6 +73,9 @@
     {
         $this->renderHeader();
         $this->renderTimeline();
+		?>
+		<ul class="buttons"><li><a href="<?= get_post_type_archive_link(BASE.$this->content) ?>">See All Before & Afters</a></li></ul>
+		<?php
     }
 
 	protected function get_field(string $fieldName, array $fields) {
@@ -90,7 +87,7 @@
     protected function renderHeader():void
     {
 		$meta = Meta::forPost($this->parentID);
-		$sharedFields = JVB()->routes('content')->getTimelineSharedFields($this->content);
+		$sharedFields = ContentRoutes::getInstance()->getTimelineSharedFields($this->content);
 		$fields = $meta->getAll($sharedFields);
 		$extra = $meta->getAll();
         ?>
@@ -133,6 +130,7 @@
 				}
 				?>
 			</ul>
+			<ul class="buttons"><li><a href="<?= get_post_type_archive_link(BASE.$this->content) ?>">See All Before & Afters</a></li></ul>
         </header>
 		<section id="info">
 			<?php
@@ -173,7 +171,7 @@
 	{
 		$all = $this->children;
 		array_unshift($all, $this->parentID);
-		$uniqueFields = JVB()->routes('content')->getTimelineUniqueFields($this->content);
+		$uniqueFields = ContentRoutes::getInstance()->getTimelineUniqueFields($this->content);
 
 		foreach ($all as $i => $ID) {
 			$meta = Meta::forPost($ID);
@@ -183,11 +181,11 @@
 			$title = ($i === 0) ? 'Before Laser Tattoo Removal' : 'After '.$i.' Treatment'.$plural;
 			$title = ($i > 0 && !str_contains('Treatment', $fields['post_title'])) ? $fields['post_title'] : $title;
 			?>
-			<section id="<?= $i === 0 ? 'before-treatment' : 'treatment-'.$i ?>" class="timeline-point row a-start nowrap">
+			<section id="<?= $i === 0 ? 'before-treatment' : 'treatment-'.$i ?>" class="timeline-point row top nowrap">
 				<?php
 				$img = $this->get_field('post_thumbnail', $fields);
 				if (is_int($img)) {
-					echo jvbFormatImage($img);
+					echo str_replace('<img', '<img data-caption=".info header"', jvbFormatImage($img));
 				}
 				?>
 				<div class="info">
@@ -224,9 +222,14 @@
 		$registrar = Registrar::getInstance('timeline');
 		foreach ($timeline as $term) {
 			$link = get_term_link($term->term_id, BASE.'timeline');
-			$out .= '<li><a href="'.$link.'" rel="tag" title="See more progressions at this timeline">'.jvbIcon($registrar->getIcon('hourglass')).html_entity_decode($term->name).'</a><small>after the treatment</small></li>';
+			$out .= '<li><small><a href="'.$link.'" rel="tag" title="See more progressions at this timeline">'.jvbIcon($registrar->getIcon('hourglass')).html_entity_decode($term->name).'</a> after the treatment</small></li>';
 		}
 		$out .='</ul>';
 		return $out;
 	}
+
+	public function renderGallery():void
+	{
+		jvbRenderGallery();
+	}
 }

--
Gitblit v1.10.0