X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=admin_images.php;h=7e64aaeec5c036e2c591626954e428c5594737a6;hb=3f7ed94cc5debb10c263d25a7a2a8eb575e4676f;hp=b57f2a4115502c151cfb15e9b1bf582a6d7a2e11;hpb=8a99c91b99d3035cd1d9c6a9b64740cc31bff014;p=wfpl-cms.git diff --git a/admin_images.php b/admin_images.php index b57f2a4..7e64aae 100644 --- a/admin_images.php +++ b/admin_images.php @@ -135,7 +135,7 @@ function admin_images_main_display($id) { continue; } list($max_width, $max_height) = explode('x', $max_hw); - $src = str_replace('.', "-$max_hw.", $big_src); + $src = str_replace('.', "-$max_width-$max_height.", $big_src); $dimensions = image_dimensions($src); if($dimensions) { list($width, $height) = explode('x', $dimensions); @@ -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'; } @@ -193,7 +222,7 @@ function admin_images_main_form($id = false) { continue; } list($max_width, $max_height) = explode('x', $max_hw); - $src = str_replace('.', "-$max_hw.", $big_src); + $src = str_replace('.', "-$max_width-$max_height.", $big_src); if(($_FILES['image'] && $_FILES['image']['error'] == 0) || !file_exists($src)) { imagemagick_convert($big_src, $src, "-geometry $max_hw", 'Resizing image'); } @@ -207,12 +236,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