getThesisFiles($thesisId); // Build per-queue-type existing-files JSON for FilePond edit mode $buildQueueFilesJson = function (array $files, string $queueType): array { $result = []; foreach ($files as $f) { $ft = $f['file_type'] ?? ''; $fp = $f['file_path'] ?? ''; if (str_starts_with($fp, 'http://') || str_starts_with($fp, 'https://')) continue; if ($queueType === 'cover' && $ft !== 'cover') continue; if ($queueType === 'note_intention' && $ft !== 'note_intention') continue; if ($queueType === 'tfe' && ($ft === 'cover' || $ft === 'note_intention' || $ft === 'annex')) continue; if ($queueType === 'annexe' && $ft !== 'annex') continue; $result[] = [ 'source' => (string)((int)$f['id']), 'options' => [ 'type' => 'local', 'file' => [ 'name' => $f['file_name'] ?? basename($f['file_path'] ?? ''), 'size' => (int)($f['file_size'] ?? 0), 'type' => $f['mime_type'] ?? 'application/octet-stream', ], ], ]; } // Include session temp files so uploads survive page reload require_once APP_ROOT . '/src/FilepondHandler.php'; $tempFiles = FilepondHandler::getSessionTempFiles($queueType); foreach ($tempFiles as $tf) { $result[] = $tf; } return $result; }; $existingFilesJsonForCover = $buildQueueFilesJson($currentFiles, 'cover'); $existingFilesJsonForNoteIntention = $buildQueueFilesJson($currentFiles, 'note_intention'); $existingFilesJsonForTfe = $buildQueueFilesJson($currentFiles, 'tfe'); $existingFilesJsonForAnnexe = $buildQueueFilesJson($currentFiles, 'annexe'); $_POST['edit_mode'] = '1'; } require_once APP_ROOT . '/templates/partials/form/fichiers-fragment.php';