<?php
-# This form requires wfpl. See: http://jasonwoof.org/wfpl
-
-# This form was initially auto-generated. If you would like to alter the
-# parameters and generate a new one try this URL:
-#
-# http://jasonwoof.com/metaform/?file_name=admin_images&table_name=cms_images&singular=image&plural=images&opt_email=No&opt_db=Yes&opt_listing=Yes&opt_display=Yes&opt_pass=Yes&fields=image+thumb%0D%0Aname+textbox%0D%0Acaption+textbox%0D%0Asizes+textarea&edit=yes
-
-
-# SETUP
-
-# 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
-#
-# if you rename any of the database fields, you'll need to update this:
+# This form requires wfpl. See: http://sametwice.com/wfpl
define('ADMIN_IMAGES_DB_FIELDS', 'image,name,caption,sizes');
$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) {
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);
}
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';
}
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');
}
$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