| | |
| | | use Exception; |
| | | use JVBase\registrar\Registrar; |
| | | use JVBase\base\Site; |
| | | use WP_Error; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | ); |
| | | } |
| | | |
| | | 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 |
| | | */ |
| | |
| | | 'post_author' => $user, |
| | | 'post_status' => 'draft', |
| | | 'post_title' => $title, |
| | | 'post_slug' => sanitize_title($title), |
| | | 'post_name' => sanitize_title($title), |
| | | 'post_excerpt' => $excerpt |
| | | ]; |
| | | |
| | |
| | | |
| | | 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['user'], $args['post_type'], $title, $treatment); |
| | | if ($child && !is_wp_error($child) && $child> 0 ) { |
| | | $createdChildren[] = $child; |
| | | $usedUploads[] = $imgID; |
| | | set_post_thumbnail($child, $imgID); |
| | | } |
| | | } |
| | | } |