JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
delete image files
authorJason Woofenden <jason@jasonwoof.com>
Wed, 4 Sep 2013 20:18:03 +0000 (16:18 -0400)
committerJason Woofenden <jason@jasonwoof.com>
Wed, 4 Sep 2013 20:18:03 +0000 (16:18 -0400)
admin_images.php

index 90a99c0..eebe9ba 100644 (file)
@@ -162,8 +162,37 @@ function admin_images_main_display($id) {
 }
 
 function admin_images_main_delete($id) {
-       db_delete('cms_images', 'where id=%i', $id);
-       message('Image deleted.');
+       $data = db_get_assoc('cms_images', 'image,sizes', 'where id=%i', $id);
+       if ($data) {
+               $filenames = array();
+               $space = strpos($data['image'], ' ');
+               $dot = strpos($data['image'], '.');
+               if ($space !== false && $dot !== false && $dot < $space) {
+                       $base = substr($data['image'], 0, $dot);
+                       $ext = substr($data['image'], $dot, $space - $dot);
+                       $filenames[] = "$base$ext";
+                       $filenames[] = "{$base}_thumb$ext";
+                       $sizes = explode("\n", $data['sizes']);
+                       foreach ($sizes as $max_hw) {
+                               $max_hw = format_width_height($max_hw);
+                               if($max_hw == '') {
+                                       continue;
+                               }
+                               list($max_width, $max_height) = explode('x', $max_hw);
+                               $filenames[] = "$base-{$max_width}x$max_height$ext"; # old naming scheme
+                               $filenames[] = "$base-{$max_width}-$max_height$ext"; # new namich scheme
+                       }
+               }
+               foreach ($filenames as $filename) {
+                       if (file_exists($filename)) {
+                               unlink($filename);
+                       }
+               }
+               db_delete('cms_images', 'where id=%i', $id);
+               message('Image deleted.');
+       } else {
+               message("Couldn't find image to delete. Maybe it's already been deleted?");
+       }
        return './admin_images';
 }