0) { logAdminAction( $_SESSION['admin_id'], 'UPLOAD_IMAGES', "Téléversement de $successCount image(s)", $currentPath ); } if ($successCount > 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 (isSecurePath($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; // Initialiser le compteur $errors = []; foreach ($images as $image) { $imagePath = $currentPath . '/' . basename($image); if (isSecurePath($imagePath) && file_exists($imagePath)) { if (unlink($imagePath)) { $deleteCount++; // Incrémenter le compteur en cas de succès } else { $errors[] = "Erreur lors de la suppression de " . basename($image); } } } // Loguer l'action une fois que toutes les suppressions sont terminées if ($deleteCount > 0) { logAdminAction( $_SESSION['admin_id'], 'DELETE_IMAGES', "Suppression de $deleteCount image(s)", $currentPath ); $_SESSION['success_message'] = "$deleteCount image(s) supprimée(s)."; } if (!empty($errors)) { $_SESSION['error_message'] = implode("\n", $errors); } break; case 'move': $images = $_POST['images'] ?? []; $destinationPath = $_POST['destination_path'] ?? ''; if ($moveCount > 0) { logAdminAction( $_SESSION['admin_id'], 'MOVE_IMAGES', "Déplacement de $moveCount image(s) vers " . basename($_POST['destination_path']), $currentPath . ' -> ' . $_POST['destination_path'] ); } $errors = []; // Vérifier que le dossier de destination existe et est valide if (!empty($destinationPath) && is_dir($destinationPath) && isSecurePath($destinationPath)) { foreach ($images as $image) { $sourcePath = $currentPath . '/' . basename($image); $destPath = $destinationPath . '/' . basename($image); // Vérifier que le fichier source existe et est dans un chemin sécurisé if (file_exists($sourcePath) && isSecurePath($sourcePath)) { // Vérifier si un fichier du même nom existe déjà dans la destination if (file_exists($destPath)) { $info = pathinfo($destPath); $i = 1; while (file_exists($destPath)) { $destPath = $destinationPath . '/' . $info['filename'] . '_' . $i . '.' . $info['extension']; $i++; } } if (rename($sourcePath, $destPath)) { $moveCount++; } else { $errors[] = "Erreur lors du déplacement de " . basename($image); } } } if ($moveCount > 0) { $_SESSION['success_message'] = "$moveCount image(s) déplacée(s) avec succès."; } if (!empty($errors)) { $_SESSION['error_message'] = implode("\n", $errors); } } else { $_SESSION['error_message'] = "Dossier de destination invalide."; } break; } } header('Location: arbre-img.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); $config = getSiteConfig(); ?> Gestion des images - <?php echo htmlspecialchars($config['site_title']); ?>

Retour

Glissez-déposez vos images ici ou cliquez sur "Ajouter des images"

<?php echo htmlspecialchars($image); ?>