JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
use sensible paths for config, wfpl, etc
[wfpl-cms.git] / admin_images.php
index 90a99c0..917526c 100644 (file)
@@ -31,7 +31,6 @@ $GLOBALS['image_file_name'] = uniqid() . getmypid() . '.jpg'; # comment this out
 
 
 require_once('code/wfpl/format.php');
-require_once('code/wfpl/email.php');
 require_once('code/wfpl/upload.php');
 
 # example: 200x300
@@ -162,8 +161,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';
 }
 
@@ -207,12 +235,12 @@ function admin_images_main_form($id = false) {
                        $saved_id = $id;
                } else {
                        db_insert_assoc('cms_images', $data);
-                       message('Image saved.');
+                       message('Image saved. Next time you open a page editor, this image will be availble in the "Insert Image" dialog.');
                        $saved_id = db_auto_id();
                }
 
                # return user to display page where they can see instructions, etc
-               return "./admin_images?id=$saved_id";
+               return "./admin_images";
 
        } elseif($id) {
                # we've recieved an edit id, but no data. So we grab the values to be edited from the database