From beb8f09a9d9213afdb5bdc8aab87da7049d283a2 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 5 Sep 2019 17:20:08 +0300 Subject: [PATCH] Flex FolderStorage: Added support for partial delete --- .../Framework/Flex/Storage/FolderStorage.php | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php index 07338053b..2ee90cd46 100644 --- a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php @@ -173,14 +173,16 @@ class FolderStorage extends AbstractFilesystemStorage $file = $this->getFile($path); $list[$key] = $this->deleteFile($file); - $storagePath = $this->getStoragePath($key); - $mediaPath = $this->getMediaPath($key); + if ($this->canDeleteFolder($key)) { + $storagePath = $this->getStoragePath($key); + $mediaPath = $this->getMediaPath($key); - if ($storagePath) { - $this->deleteFolder($storagePath, true); - } - if ($mediaPath && $mediaPath !== $storagePath && $mediaPath !== $baseMediaPath) { - $this->deleteFolder($mediaPath, true); + if ($storagePath) { + $this->deleteFolder($storagePath, true); + } + if ($mediaPath && $mediaPath !== $storagePath && $mediaPath !== $baseMediaPath) { + $this->deleteFolder($mediaPath, true); + } } } } @@ -462,6 +464,14 @@ class FolderStorage extends AbstractFilesystemStorage } } + /** + * @return bool + */ + protected function canDeleteFolder(string $key): bool + { + return true; + } + /** * Returns list of all stored keys in [key => timestamp] pairs. *