diff --git a/api/orders.php b/api/orders.php index ca4948a..5c39307 100644 --- a/api/orders.php +++ b/api/orders.php @@ -163,24 +163,29 @@ $cmd->fetch_thirdparty(); if (method_exists($cmd, 'fetch_optionals')) $cmd->fetch_optionals(); if ($action === 'photos') { - // Anhänge des Auftrags + // Anhänge des Auftrags — verwende glob statt dol_dir_list für korrektes filesize $upload_dir = $conf->commande->multidir_output[$cmd->entity].'/'.dol_sanitizeFileName($cmd->ref); - error_log('[BERICHT] upload_dir: '.$upload_dir.' exists: '.(is_dir($upload_dir) ? 'yes' : 'no')); - $files = is_dir($upload_dir) - ? dol_dir_list($upload_dir, 'files', 1, '', '(\.meta|_preview.*\.png|thumbs)$') - : array(); - error_log('[BERICHT] dol_dir_list returned '.count($files).' files'); $out = array(); - foreach ($files as $f) { - error_log('[BERICHT] file: '.$f['name'].' size: '.$f['size']); - $out[] = array( - 'filename' => $f['name'], - 'size' => (int) $f['size'], - 'mime' => dol_mimetype($f['name']), - 'date' => (int) $f['date'], - 'relpath' => str_replace(DOL_DATA_ROOT.'/', '', $f['fullname']), - ); + + if (is_dir($upload_dir)) { + $allFiles = glob($upload_dir.'/*', GLOB_NOSORT); + foreach ($allFiles as $filepath) { + if (!is_file($filepath)) continue; + $name = basename($filepath); + // Ignoriere Meta-Dateien, Previews und Hidden Files + if (strpos($name, '.meta') !== false || strpos($name, '_preview') !== false || $name[0] === '.') continue; + + $out[] = array( + 'filename' => $name, + 'size' => (int) @filesize($filepath), + 'mime' => dol_mimetype($name), + 'date' => (int) @filemtime($filepath), + 'relpath' => str_replace(DOL_DATA_ROOT.'/', '', $filepath), + ); + } } + // Sortiere nach Datum (neuste zuerst) + usort($out, function($a, $b) { return $b['date'] <=> $a['date']; }); api_ok(array('photos' => $out, 'count' => count($out))); }