From 75a097a018a0090f5902758353c578fce4aa2a25 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sat, 23 May 2026 18:43:42 +0000
Subject: [PATCH] =CustomBlocks.php overhaul relatively complete. Also refactored the gallery in gallery.min.js and the jvbRenderGallery.
---
inc/managers/queue/executors/UploadExecutor.php | 75 +++++++++++++++++++++++++++++++------
1 files changed, 62 insertions(+), 13 deletions(-)
diff --git a/inc/managers/queue/executors/UploadExecutor.php b/inc/managers/queue/executors/UploadExecutor.php
index 91b4741..5f244d6 100644
--- a/inc/managers/queue/executors/UploadExecutor.php
+++ b/inc/managers/queue/executors/UploadExecutor.php
@@ -7,7 +7,8 @@
use JVBase\meta\Meta;
use Exception;
use JVBase\registrar\Registrar;
-use JVBase\utility\Features;
+use JVBase\base\Site;
+use WP_Error;
if (!defined('ABSPATH')) {
exit;
@@ -209,7 +210,43 @@
}
if (!empty($data['field_name'])) {
- $this->saveToMeta($data, $uploadResults);
+ if ($data['field_name'] === 'timeline_gallery') {
+ $registrar = Registrar::getInstance($data['content']);
+ if ($registrar) {
+ switch ($registrar->getType()) {
+ case 'post':
+ $meta = Meta::forPost($data['item_id']);
+ break;
+ case 'term':
+ $meta = Meta::forTerm($data['item_id']);
+ break;
+ case 'user':
+ $meta = Meta::forUser($data['item_id']);
+ break;
+ default:
+ $meta = false;
+
+ }
+ if ($meta) {
+ $title = $meta->get('post_title');
+ $current = $meta->get('number');
+ $i = empty($current) ? 1 : $current + 1;
+ foreach ($data['upload_ids'] as $uploadID) {
+ if (!array_key_exists($uploadID, $uploadResults)) {
+ continue;
+ }
+ $imgID = $uploadResults[$uploadID]['attachment_id'] ?? false;
+ if (!$imgID) {
+ continue;
+ }
+ $this->createTimelinePoint($imgID, $data['item_id'], $data['user'], $data['content'], $title, $i);
+ $i++;
+ }
+ }
+ }
+ } else {
+ $this->saveToMeta($data, $uploadResults);
+ }
}
$progress->advance(1);
@@ -220,6 +257,25 @@
);
}
+ protected function createTimelinePoint(int $imgID, int $parentID, int $user, string $postType, string $baseTitle, int $index):int|WP_Error
+ {
+ $title = $baseTitle.' - Treatment #'.$index;
+ $args = [
+ 'post_type' => jvbCheckBase($postType),
+ 'post_author' => $user,
+ 'post_status' => 'draft',
+ 'post_parent' => $parentID,
+ 'post_title' => $title,
+ 'post_name' => sanitize_title($title)
+ ];
+
+ $child = wp_insert_post($args);
+ if ($child && !is_wp_error($child)) {
+ set_post_thumbnail($child, $imgID);
+ }
+ return $child;
+ }
+
/**
* Process metadata updates for attachments
*/
@@ -502,7 +558,6 @@
error_log('Could not find a gallery upload field for post '.$ID);
}
- $meta->save();
}
@@ -539,7 +594,7 @@
'post_author' => $user,
'post_status' => 'draft',
'post_title' => $title,
- 'post_slug' => sanitize_title($title),
+ 'post_name' => sanitize_title($title),
'post_excerpt' => $excerpt
];
@@ -583,12 +638,10 @@
foreach($childPosts as $i => $imgID) {
$treatment = $i + 1;
- $args ['post_title'] = $title.' - Treatment #'.$treatment;
- $child = wp_insert_post($args);
- if ($child && !is_wp_error($child)) {
- $createdChildren = $child;
+ $child = $this->createTimelinePoint($imgID, $parent, $args['post_author'], $args['post_type'], $title, $treatment);
+ if ($child && !is_wp_error($child) && $child> 0 ) {
+ $createdChildren[] = $child;
$usedUploads[] = $imgID;
- set_post_thumbnail($child, $imgID);
}
}
}
@@ -715,7 +768,6 @@
$meta->set($data['field_name'], implode(',', $allIds));
}
- $meta->save();
}
private function updateFieldValue(array $data, array $results): void
@@ -735,7 +787,6 @@
$allIds = array_unique(array_merge($existingIds, $attachmentIds));
$meta->set($data['field_name'], implode(',', $allIds));
- $meta->save();
}
private function getMetaManager(array $data): ?Meta
@@ -798,14 +849,12 @@
} elseif (str_starts_with($mimeType, 'video/')) {
$meta = Meta::forPost($postId);
$meta->set('video', $attachmentId);
- $meta->save();
} else {
$meta = Meta::forPost($postId);
$existing = $meta->get('documents');
$existingIds = !empty($existing) ? explode(',', $existing) : [];
$existingIds[] = $attachmentId;
$meta->set('documents', implode(',', $existingIds));
- $meta->save();
}
}
--
Gitblit v1.10.0