$references, 'count' => count($references)); } } # display smaller versions with instructions and example code $smaller == array(); if($data['image'] && $data['sizes']) { $big_src = enc_image_src($data['image']); $row = explode("\n", $data['sizes']); foreach($row as $max_hw) { $max_hw = format_width_height($max_hw); if($max_hw == '') { continue; } list($max_width, $max_height) = explode('x', $max_hw); $src = str_replace('.', "-$max_width-$max_height.", $big_src); $dimensions = image_dimensions($src); if($dimensions) { list($width, $height) = explode('x', $dimensions); } else { $width = $max_width; $height = $max_height; } $smaller[] = array( 'src' => $src, 'max_width' => $max_width, 'max_height' => $max_height, 'width' => $width, 'height' => $height); } } if($smaller) { $data['smaller'] = $smaller; } else { tem_set('no_sizes'); } tem_set('display', $data); } function admin_images_main_delete($id) { $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'; } function admin_images_main_listing() { $listing_rows = db_get_assocs('cms_images', 'id,image,name,caption', 'order by name, caption'); tem_set('listings', $listing_rows); } function admin_images_main_form($id = false) { if($id) { tem_set('id', $id); } if(isset($_POST['name'])) { $data = admin_images_get_fields(); # save anything # Note: If you change this to re-display the form in some cases, be sure to handle image uploads well (don't make them upload it again.) # resize image as needed if($data['image'] && $data['sizes']) { $big_src = enc_image_src($data['image']); $row = explode("\n", $data['sizes']); foreach($row as $max_hw) { $max_hw = format_width_height($max_hw); if($max_hw == '') { continue; } list($max_width, $max_height) = explode('x', $max_hw); $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'); } } } # save to database if($id) { db_update_assoc('cms_images', $data, 'where id=%i', $id); message('Image updated.'); $saved_id = $id; } else { db_insert_assoc('cms_images', $data); 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"; } elseif($id) { # we've recieved an edit id, but no data. So we grab the values to be edited from the database $data = db_get_assoc('cms_images', ADMIN_IMAGES_DB_FIELDS, 'where id=%i', $id); } else { # form not submitted, set default values: $data = array('sizes' => '275x500'); } tem_set('upload_max_filesize', upload_max_filesize()); tem_set('form', $data); }