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