From f77f2e6e295c9a6f99968029020c60be453e7e57 Mon Sep 17 00:00:00 2001 From: jekkos-t520 Date: Thu, 5 Feb 2015 17:25:35 +0100 Subject: [PATCH] item pics are now resized and cached server side --- application/controllers/items.php | 28 ++++++++++++++++++++++++++++ application/helpers/table_helper.php | 2 +- application/views/items/manage.php | 26 -------------------------- js/imgpreview.full.jquery.js | 14 +++++++++----- 4 files changed, 38 insertions(+), 32 deletions(-) diff --git a/application/controllers/items.php b/application/controllers/items.php index b9ffc9237..dbe910c8e 100644 --- a/application/controllers/items.php +++ b/application/controllers/items.php @@ -67,6 +67,34 @@ class Items extends Secure_area implements iData_controller echo $data_rows; $this->_remove_duplicate_cookies(); } + + function pic_thumb($pic_id) + { + $this->load->helper('file'); + $this->load->library('image_lib'); + $base_path = "uploads/item_pics/" . $pic_id ; + $images = glob ($base_path. "*"); + if (sizeof($images) > 0) + { + $image_path = $images[0]; + $ext = pathinfo($image_path, PATHINFO_EXTENSION); + $thumb_path = $base_path . $this->image_lib->thumb_marker.'.'.$ext; + if (sizeof($images) < 2) + { + $config['image_library'] = 'gd2'; + $config['source_image'] = $image_path; + $config['maintain_ratio'] = TRUE; + $config['create_thumb'] = TRUE; + $config['width'] = 52; + $config['height'] = 32; + $this->image_lib->initialize($config); + $image = $this->image_lib->resize(); + $thumb_path = $this->image_lib->full_dst_path; + } + $this->output->set_content_type(get_mime_by_extension($thumb_path)); + $this->output->set_output(file_get_contents($thumb_path)); + } + } /* Gives search suggestions based on what is being searched for diff --git a/application/helpers/table_helper.php b/application/helpers/table_helper.php index e1cdf1b52..d62ec78d7 100644 --- a/application/helpers/table_helper.php +++ b/application/helpers/table_helper.php @@ -228,7 +228,7 @@ function get_item_data_row($item,$controller) $images = glob ("uploads/item_pics/" . $item->pic_id . ".*"); if (sizeof($images) > 0) { - $image.=''; + $image.=''; } } $table_data_row.='' . $image . ''; diff --git a/application/views/items/manage.php b/application/views/items/manage.php index ea398e763..49a7c9fff 100644 --- a/application/views/items/manage.php +++ b/application/views/items/manage.php @@ -33,32 +33,6 @@ $(document).ready(function() function resize_thumbs() { $('a.rollover').imgPreview(); - $('a.rollover img').each(function() - { - var maxWidth = 52; // Max width for the image - var maxHeight = 32; // Max height for the image - var ratio = 0; // Used for aspect ratio - var width = $(this).width(); // Current image width - var height = $(this).height(); // Current image height - - // Check if the current width is larger than the max - if(width > maxWidth){ - ratio = maxWidth / width; // get ratio for scaling image - $(this).css("width", maxWidth); // Set new width - $(this).css("height", height * ratio); // Scale height based on ratio - height = height * ratio; // Reset height to match scaled image - width = width * ratio; // Reset width to match scaled image - } - - // Check if current height is larger than max - if(height > maxHeight){ - ratio = maxHeight / height; // get ratio for scaling image - $(this).css("height", maxHeight); // Set new height - $(this).css("width", width * ratio); // Scale width based on ratio - width = width * ratio; // Reset width to match scaled image - height = height * ratio; // Reset height to match scaled image - } - }); } diff --git a/js/imgpreview.full.jquery.js b/js/imgpreview.full.jquery.js index c2f370342..eb5fdec1c 100644 --- a/js/imgpreview.full.jquery.js +++ b/js/imgpreview.full.jquery.js @@ -55,17 +55,21 @@ // Re-usable means to add prefix (from setting): function addPrefix(src) { - return src.replace(/(\/?)([^\/]+)$/,'$1' + s.thumbPrefix + '$2'); + return src && src.replace(/(\/?)([^\/]+)$/,'$1' + s.thumbPrefix + '$2'); } if (s.preloadImages) { (function(i){ var tempIMG = new Image(), callee = arguments.callee; - tempIMG.src = addPrefix($($collection[i]).attr(s.srcAttr)); - tempIMG.onload = function(){ - $collection[i + 1] && callee(i + 1); - }; + var src = $($collection[i]).attr(s.srcAttr) + if (src) + { + tempIMG.src = addPrefix(src); + tempIMG.onload = function(){ + $collection[i + 1] && callee(i + 1); + }; + } })(0); }