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 | 51 +++++++++++++++++++++++++++------------------------
1 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/inc/blocks/TimelineBlock.php b/inc/blocks/TimelineBlock.php
index e2831d4..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\utility\Features;
+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()
@@ -48,7 +48,7 @@
public function render(array $attributes, string $content, WP_Block $block)
{
global $post;
- $registrar = Registrar::getInstance($post->post_type));
+ $registrar = Registrar::getInstance($post->post_type);
if (!$post || !$registrar || !$registrar->hasFeature('is_timeline') ) {
return '';
}
@@ -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,7 +130,16 @@
}
?>
</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
+ $content = $this->get_field('post_content', $extra);
+ if ($content !== '') {
+ echo $this->formatContent($content);
+ }
+ ?>
+ </section>
<section id="at-a-glance" class="row nowrap">
<div class="before">
<h3>Before</h3>
@@ -146,14 +152,6 @@
<?php endif; ?>
</div>
</section>
- <section id="info">
- <?php
- $content = $this->get_field('post_content', $extra);
- if ($content !== '') {
- echo $this->formatContent($content);
- }
- ?>
- </section>
<?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