From ac444cba221832c012c0435fdc8339fe9f37febb Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 11 May 2026 18:35:04 +0000
Subject: [PATCH] =Some changes to the CRUD.js editing, timeline post configuration
---
inc/managers/queue/executors/ContentExecutor.php | 48 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/inc/managers/queue/executors/ContentExecutor.php b/inc/managers/queue/executors/ContentExecutor.php
index 4fbdba2..3d5ef56 100644
--- a/inc/managers/queue/executors/ContentExecutor.php
+++ b/inc/managers/queue/executors/ContentExecutor.php
@@ -70,7 +70,7 @@
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;
@@ -503,6 +518,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 +556,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