From 46d681c6b825d21b3f698d793c4e630c687d90ad Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 21 May 2026 21:41:53 +0000
Subject: [PATCH] =Major CustomBlocks.php overhaul, expanding block support and customization from the editor. theme.json should now be updated on new themes to set brand colours, etc. Also note: major change to .col vs .row alignment: simplifying it to .top .bottom vs the confusion of the differences for .col/.row .start and .a-start

---
 inc/managers/queue/executors/ContentExecutor.php |   54 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 48 insertions(+), 6 deletions(-)

diff --git a/inc/managers/queue/executors/ContentExecutor.php b/inc/managers/queue/executors/ContentExecutor.php
index 4fbdba2..55835f0 100644
--- a/inc/managers/queue/executors/ContentExecutor.php
+++ b/inc/managers/queue/executors/ContentExecutor.php
@@ -67,10 +67,10 @@
 	private function processContentUpdate(Operation $operation, array $data, Progress $progress): Result
 	{
 		$posts = $data['posts'] ?? [];
-
+		error_log('Processing Content Update: '.print_r($posts, true));
 		if (empty($posts)) {
 			return new Result(
-				outcome: 'failed',
+				outcome: 'success',
 				result: ['message' => 'No posts to update']
 			);
 		}
@@ -242,12 +242,11 @@
 			}
 		}
 	}
-	protected function maybeReorderTimeline(int $parentID):void
+	protected function getTimelinePosts(int $parentID):array
 	{
-//		clean_post_cache($parentID);
 		$parent = get_post($parentID);
 		if (!$parent) {
-			return;
+			return [];
 		}
 
 		$children = get_children([
@@ -258,7 +257,7 @@
 
 
 		if (count($children) === 0) {
-			return;
+			return [];
 		}
 
 		$allPosts = array_merge([$parent], $children);
@@ -268,6 +267,22 @@
 			return strtotime($a->post_date) <=> strtotime($b->post_date);
 		});
 
+		return $allPosts;
+	}
+	protected function maybeReorderTimeline(int $parentID):void
+	{
+//		clean_post_cache($parentID);
+		$parent = get_post($parentID);
+		if (!$parent) {
+			return;
+		}
+
+		$allPosts = $this->getTimelinePosts($parentID);
+		if (empty($allPosts)) {
+			return;
+		}
+
+
 
 		// Check if order changed
 		$needsReorder = false;
@@ -333,6 +348,10 @@
 					}
 				}
 			}
+			$isUpdate = $meta->get('is_update');
+			if (!(bool) $isUpdate) {
+				$meta->set('number', $index);
+			}
 
 			if ($lastKey === $index) {
 				$latestTimestamp = strtotime($post->post_date);
@@ -503,6 +522,7 @@
 				'post_title'  => $data['post_title'] ?? apply_filters('jvbDefaultTitle', '', $registrar->getSlug()),
 				'post_status' => $data['status'] ?? 'draft',
 			]);
+			error_log('Created new post: '.print_r($newId, true));
 
 			if (!$newId || is_wp_error($newId)) {
 				$results['errors'][$ID] = 'Could not create post';
@@ -540,6 +560,28 @@
 				return !array_key_exists('for_all', $field) || !$field['for_all'];
 			}));
 
+
+			if (array_key_exists('timeline_gallery', $data)) {
+				//This should only happen if we delete an image from the gallery
+				$changes = explode(',', $data['timeline_gallery']);
+				$timelinePosts = $this->getTimelinePosts($parentId);
+				if (!empty($timelinePosts)) {
+					$posts = array_map(function($item) { return $item->ID; }, $timelinePosts);
+					$changed = false;
+					foreach ($posts as $tID) {
+						if (!in_array($tID, $changes)) {
+							$changed = true;
+							wp_delete_post($tID, true);
+						}
+					}
+					if ($changed) {
+						$results['timelineParents'][] = $parentId;
+					}
+				}
+
+			}
+
+
 			if (array_key_exists('post_date', $data) && !in_array($parentId, $results['timelineParents'])) {
 				$results['timelineParents'][] = $parentId;
 			}

--
Gitblit v1.10.0