diff --git a/admin.php b/admin.php index f3f6b23..5637d96 100644 --- a/admin.php +++ b/admin.php @@ -121,6 +121,18 @@ function showAdminInterface() { + + + +
+Glissez-déposez vos images ici ou cliquez sur "Ajouter des images"
+ +diff --git a/arbre-img-prive.php b/arbre-img-prive.php new file mode 100644 index 0000000..fe8a3de --- /dev/null +++ b/arbre-img-prive.php @@ -0,0 +1,305 @@ + 0) { + $_SESSION['success_message'] = "$successCount image(s) téléversée(s) avec succès."; + } + if (!empty($errors)) { + $_SESSION['error_message'] = implode("\n", $errors); + } + break; + + case 'toggle_top': + $image = $_POST['image'] ?? ''; + if ($image) { + $imagePath = $currentPath . '/' . basename($image); + if (isSecurePrivatePath($imagePath) && file_exists($imagePath)) { + $info = pathinfo($imagePath); + $isTop = strpos($info['filename'], '--top--') !== false; + + if ($isTop) { + // Enlever le tag top + $newName = str_replace('--top--', '', $info['filename']) . '.' . $info['extension']; + } else { + // Ajouter le tag top + $newName = $info['filename'] . '--top--.' . $info['extension']; + } + + $newPath = $currentPath . '/' . $newName; + if (rename($imagePath, $newPath)) { + $_SESSION['success_message'] = $isTop ? "Image retirée des tops." : "Image mise en top."; + } else { + $_SESSION['error_message'] = "Erreur lors de la modification du statut top."; + } + } + } + break; + + case 'delete': + $images = $_POST['images'] ?? []; + $deleteCount = 0; + + foreach ($images as $image) { + $imagePath = $currentPath . '/' . basename($image); + if (isSecurePrivatePath($imagePath) && file_exists($imagePath)) { + if (unlink($imagePath)) { + $deleteCount++; + } + } + } + + if ($deleteCount > 0) { + $_SESSION['success_message'] = "$deleteCount image(s) supprimée(s)."; + } + break; + } + } + header('Location: arbre-img-prive.php?path=' . urlencode($currentPath)); + exit; +} + +// Récupérer les images du dossier courant +$images = []; +$tempImages = []; +foreach (new DirectoryIterator($currentPath) as $file) { + if ($file->isDot()) continue; + if ($file->isFile()) { + $extension = strtolower($file->getExtension()); + if (in_array($extension, ALLOWED_EXTENSIONS)) { + $tempImages[] = [ + 'name' => $file->getFilename(), + 'time' => $file->getCTime() + ]; + } + } +} + +// Trier par date de création décroissante +usort($tempImages, function($a, $b) { + return $b['time'] - $a['time']; +}); + +// Extraire uniquement les noms de fichiers +$images = array_map(function($img) { + return $img['name']; +}, $tempImages); + +$currentAlbumInfo = getAlbumInfo($currentPath); +?> + + + +
+ + +
+ + + + +
+