diff --git a/admin/api/delete-story.php b/admin/api/delete-story.php index 7676341..9a2e5c7 100644 --- a/admin/api/delete-story.php +++ b/admin/api/delete-story.php @@ -34,7 +34,7 @@ try { throw new Exception('Roman non trouvé'); } - // Suppression de l'image de couverture si elle existe + // 1. Suppression de l'image de couverture if (!empty($story['cover'])) { $coverPath = __DIR__ . '/../../' . $story['cover']; if (file_exists($coverPath)) { @@ -42,7 +42,29 @@ try { } } - // Suppression du fichier JSON du roman + // 2. Suppression des images des chapitres + $chaptersImagesDir = __DIR__ . '/../../assets/images/chapters/' . $storyId; + if (file_exists($chaptersImagesDir)) { + // Parcours récursif du dossier des images + $files = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($chaptersImagesDir, RecursiveDirectoryIterator::SKIP_DOTS), + RecursiveIteratorIterator::CHILD_FIRST + ); + + // Suppression de tous les fichiers et sous-dossiers + foreach ($files as $file) { + if ($file->isDir()) { + rmdir($file->getRealPath()); + } else { + unlink($file->getRealPath()); + } + } + + // Suppression du dossier principal des images du roman + rmdir($chaptersImagesDir); + } + + // 3. Suppression du fichier JSON du roman $storyFile = __DIR__ . '/../../stories/' . $storyId . '.json'; if (file_exists($storyFile)) { unlink($storyFile); @@ -50,11 +72,12 @@ try { // Réponse de succès echo json_encode([ 'success' => true, - 'message' => 'Roman supprimé avec succès' + 'message' => 'Roman et médias associés supprimés avec succès' ]); } else { throw new Exception('Fichier du roman introuvable'); } + } catch (Exception $e) { http_response_code(500); echo json_encode([