X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=admin_images.php;h=8b6e5132e534ec66d018db16ac1baf5e60f759ac;hb=c469d2530ad9684e56742d38f5817cb08ad98eef;hp=b57f2a4115502c151cfb15e9b1bf582a6d7a2e11;hpb=8a99c91b99d3035cd1d9c6a9b64740cc31bff014;p=wfpl-cms.git diff --git a/admin_images.php b/admin_images.php index b57f2a4..8b6e513 100644 --- a/admin_images.php +++ b/admin_images.php @@ -13,7 +13,7 @@ # To save results to a database, you'll need to create the cms_images table # (the file admin_images.sql should help with this), and create the file # 'code/db_connect.php' which calls db_connect() see: -# code/wfpl/examples/db_connect.php +# inc/wfpl/examples/db_connect.php # # if you rename any of the database fields, you'll need to update this: @@ -30,9 +30,8 @@ $GLOBALS['image_thumb_max_height'] = '70'; $GLOBALS['image_file_name'] = uniqid() . getmypid() . '.jpg'; # comment this out to use uploader's filename -require_once('code/wfpl/format.php'); -require_once('code/wfpl/email.php'); -require_once('code/wfpl/upload.php'); +require_once('inc/wfpl/format.php'); +require_once('inc/wfpl/upload.php'); # example: 200x300 function format_width_height($str) { @@ -135,7 +134,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 +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'; } @@ -193,7 +221,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 +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