PDA

View Full Version : Dynamic Mo Pics Auto Thumbnail Creation



treb
06-20-2005, 07:22 AM
Does DMP auto create thumbnails for this version? This is a real time saver, but it does not appear that it does. If not, surely people are using some sort of script to duplicate this functionality.

Thanks.

gamefreak7
07-01-2005, 08:31 PM
Here is a super documentation on Dynamic Mo pics, hope this helps.

http://oscdox.com/modules.php?op=modload&name=phpWiki&file=index&pag ename=DynamicMoPicsSetup

Paul

jpf
07-02-2005, 01:34 PM
There is no AUTOMATIC thumbnail generated by DMP - as EXTRA PICS/FILES have to be FTPed to the server. DMP makes it so you do NOT have to have a single PIC & thumbnails but could be many say SIDE, INSIDE, BACK view of your product....

As for AUTOMATIC thumbnail generation - to do it dynamically is very CPU intensive....No HOST would like some one hogging the cycles... BUT it can be done - however MANY HOSTS have "GD library" for PHP turned OFF. GD library is needed for php to create/modify pics...

If you want and have GD2 enabled try:

Automatic Thumbnail
http://www.oscommerce.com/community/contributions,1484
(However I think there may be problems/conflick with DMP...)

Maybe some one will suggested it to be ADDED into MAX 2.X

Good Luck!

miahac
07-14-2005, 01:09 PM
I suggest that this be added to max 2.x

michael_s
07-14-2005, 02:21 PM
You can easily add any of the auto thumbnailer mods out there. I just added the netpbm auto thumbnailer to a customer's site, and with a few minor tweaks to dynamic - mopics it is working quite nicely...

dreamscape
07-15-2005, 03:26 PM
There are plenty of photo & imaging programs out there that will create thumbnails for you that are much better looking than anything GD lib can pump out. Alot will automate the process for you (you just drop in the files or folder), and some are free too (e.g., Gimp).

cyberwisdom
10-10-2005, 12:36 PM
You can easily add any of the auto thumbnailer mods out there. I just added the netpbm auto thumbnailer to a customer's site, and with a few minor tweaks to dynamic - mopics it is working quite nicely...

Could you explain how you did this? I would really like to do the same here.

miahac
10-21-2005, 01:46 PM
I will donate $150 via paypal to someone who will do put together a contribution or upgrade to dyanmic mopics that meets the following goals.

1. Must easily be added on to osc2 max 2.0.
2. Upload images directly from admin page
3. Choose to generate thumbs via gd library or
4. Upload manual thumbs
5. Choose which image is shown in category list
6. Deletes images when the item is deleted.
7. Should look like the attached image
8. Thumbs are in thumbs dir and big is in big directory
9. Fix any path problems
10. Have a max images to limit the number of lines that show for image entry.

If anyone wants to add some $$ to match or partialy match my donation, please add you input as well.

spottedhaggis
03-31-2006, 12:57 PM
I took a standard osc html output file, modified it with any one of the number of thumbnial contribs available, modified it ok, uploaded it into my functionsfolder of an OSCMAX system and sure, it generates the smaller thumbnail at a good size, but when you click to enlarge it it opens the same created thumbnail.,

Can you point me as to where I modify the mopics for this.

please bear in mind I have 1900 items already in the system, each has a seperate large image and thumbnail, these have to remain as they are, but for all future products I want the auto thumb to work.

Can this be achievedd?

spottedhaggis
03-31-2006, 01:25 PM
I take it back, it worked perfect.

I simply removed the thumbs, moves all the large images into the main root of images, and bobs your uncle, its working perfect

Thumbs are around 1.8k and larger at 30k

spottedhaggis
03-31-2006, 01:32 PM
for anyone who wants it, already modified, simplye backup the following file

catalog/includes/functions/html_output.php

Edit the file (not the backup)

Delete everything in the file (every single thing)

Copy the stuff below and paste it into the file, then upload it to the same location.

You backup in case it does not work for you. When done, goto admin, configuration, Dynamic Mopics and set the following

Big images Directory = /
Thumbnail Images Directory = /

Thats what I have done and it worked perfect.

Here is the HTML output file content. make sure you get it all


<?php
/*
$Id: html_output.php,v 1.56 2003/07/09 01:15:48 hpdl Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2003 osCommerce

Released under the GNU General Public License
*/

////
// The HTML href link wrapper function
function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
global $request_type, $session_started, $SID;

if (!tep_not_null($page)) {
die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>');
}

if ($connection == 'NONSSL') {
$link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == true) {
$link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
} else {
$link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
}
} else {
die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine connection method on a link!<br><br>Known methods: NONSSL SSL</b><br><br>');
}

if (tep_not_null($parameters)) {
$link .= $page . '?' . tep_output_string($parameters);
$separator = '&';
} else {
$link .= $page;
$separator = '?';
}

while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
if (tep_not_null($SID)) {
$_sid = $SID;
} elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
$_sid = tep_session_name() . '=' . tep_session_id();
}
}
}

if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

$link = str_replace('?', '/', $link);
$link = str_replace('&', '/', $link);
$link = str_replace('=', '/', $link);

$separator = '?';
}

if (isset($_sid)) {
$link .= $separator . tep_output_string($_sid);
}

return $link;
}

////
// The HTML image wrapper function
function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
return false;
}
if ($image_size = @getimagesize($src)) {
if ((CONFIG_CALCULATE_IMAGE_SIZE == 'true' && $src != DIR_WS_IMAGES . 'pixel_black.gif' && $src != DIR_WS_IMAGES . 'pixel_trans.gif' && $src != DIR_WS_IMAGES . 'pixel_silver.gif' )) {
if ( ($width) || ($height) ) {
if ( $width=="100%" ) {
$width = $image_size[0];
} elseif ( $height=="100%" ) {
$height = $image_size[1];
} elseif ( $width==0 ) {
unset($width);
} elseif ( $height==0 ) {
unset($height);
}
$src=thumbimage(DIR_FS_CATALOG . '/' .$src, $width, $height, 1, 1, DIR_FS_CATALOG . '/' . DIR_WS_IMAGES . 'imagecache');
if ((($image_size[1]/$height) > ($image_size[0]/$width) ) && $height>0){
$width=ceil(($image_size[0]/$image_size[1])* $height);
} elseif ($width>0) {
$height=ceil($width/($image_size[0]/$image_size[1]));
}
}
}
} elseif (IMAGE_REQUIRED == 'false') {
return '';
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}

if (tep_not_null($width) && tep_not_null($height)) {
$image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
}

////
// The HTML form submit button wrapper function
// Outputs a button in the selected language
function tep_image_submit($image, $alt = '', $parameters = '') {
global $language;

$image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "';

if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters;

$image_submit .= '>';

return $image_submit;
}

////
// Output a function button in the selected language
function tep_image_button($image, $alt = '', $parameters = '') {
global $language;

return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters);
}

////
// Output a separator either through whitespace, or with an image
function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {
return tep_image(DIR_WS_IMAGES . $image, '', $width, $height);
}

////
// Output a form
function tep_draw_form($name, $action, $method = 'post', $parameters = '') {
$form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"';

if (tep_not_null($parameters)) $form .= ' ' . $parameters;

$form .= '>';

return $form;
}

////
// Output a form input field
function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) {
$field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
$field .= ' value="' . tep_output_string(stripslashes($GLOBALS[$name])) . '"';
} elseif (tep_not_null($value)) {
$field .= ' value="' . tep_output_string($value) . '"';
}

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

return $field;
}

////
// Output a form password field
function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') {
return tep_draw_input_field($name, $value, $parameters, 'password', false);
}

////
// Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()
function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {
$selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';

if ( ($checked == true) || ( isset($GLOBALS[$name]) && is_string($GLOBALS[$name]) && ( ($GLOBALS[$name] == 'on') || (isset($value) && (stripslashes($GLOBALS[$name]) == $value)) ) ) ) {
$selection .= ' CHECKED';
}

if (tep_not_null($parameters)) $selection .= ' ' . $parameters;

$selection .= '>';

return $selection;
}

////
// Output a form checkbox field
function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {
return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);
}

////
// Output a form radio field
function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') {
return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters);
}

////
// Output a form textarea field
function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
$field = '<textarea name="' . tep_output_string($name) . '" wrap="' . tep_output_string($wrap) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
$field .= tep_output_string_protected(stripslashes($GLOBALS[ $name]));
} elseif (tep_not_null($text)) {
$field .= tep_output_string_protected($text);
}

$field .= '</textarea>';

return $field;
}

////
// Output a form hidden field
function tep_draw_hidden_field($name, $value = '', $parameters = '') {
$field = '<input type="hidden" name="' . tep_output_string($name) . '"';

if (tep_not_null($value)) {
$field .= ' value="' . tep_output_string($value) . '"';
} elseif (isset($GLOBALS[$name])) {
$field .= ' value="' . tep_output_string(stripslashes($GLOBALS[$name])) . '"';
}

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

return $field;
}

////
// Hide form elements
function tep_hide_session_id() {
global $session_started, $SID;

if (($session_started == true) && tep_not_null($SID)) {
return tep_draw_hidden_field(tep_session_name(), tep_session_id());
}
}

////
// Output a form pull down menu
function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {
$field = '<select name="' . tep_output_string($name) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);

for ($i=0, $n=sizeof($values); $i<$n; $i++) {
$field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
if ($default == $values[$i]['id']) {
$field .= ' SELECTED';
}

$field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
$field .= '</select>';

if ($required == true) $field .= TEXT_FIELD_REQUIRED;

return $field;
}

////
// Creates a pull-down list of countries
function tep_get_country_list($name, $selected = '', $parameters = '') {
$countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT));
$countries = tep_get_countries();

for ($i=0, $n=sizeof($countries); $i<$n; $i++) {
$countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']);
}

return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters);
}
function thumbimage ($image, $x, $y, $aspectratio, $resize, $cachedir){

/*##############################################
# - Thumbnail-Script v1.3 - #
# Generating thumbnails 'on-the-fly' with PHP #
# #
# (c) by Christian Lamine, FlashDreams OHG #
# http://www.flashdreams.de/ #
# #
# Modified by http://www.tse.at #
# Modified by lars@iwer.de #
# #
# This script may be freely used, distributed #
# and modified without any charge as long as #
# this copyright information is included. #
# #
# Any commercial selling of this script is #
# forbidden. #
# #
# The author is not responsible for possible #
# damage which may result from the application #
# of this script, neither direct nor indirect. #
# Use at your own risk! #
##############################################*/

error_reporting(0);

$types = array (1 => "gif", "jpeg", "png", "swf", "psd", "wbmp");
$not_supported_formats = array ("GIF"); // Write in capital Letters!!
umask(0);
!is_dir ($cachedir)
? mkdir ($cachedir, 0777)
: system ("chmod 0777 ".$cachedir);

(!isset ($x) || ereg ('^[0-9]{1,}$', $x, $regs)) &&
(!isset ($y) || ereg ('^[0-9]{1,}$', $y, $regs)) &&
(isset ($x) || isset ($y))
? true
: DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');

!isset ($resize) || !ereg ('^[0|1]$', $resize, $regs)
? $resize = 0
: $resize;

!isset ($aspectratio) || !ereg ('^[0|1]$', $aspectratio, $regs)
? isset ($x) && isset ($y)
? $aspectratio = 1
: $aspectratio = 0
: $aspectratio;

!isset ($image)
? DIE ('Es wurde kein Bild angegeben!')
: !file_exists($image)
? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
: false;

$imagedata = getimagesize($image);

!$imagedata[2] || $imagedata[2] == 4 || $imagedata[2] == 5
? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
: false;

$imgtype="!(ImageTypes() & IMG_" . strtoupper($types[$imagedata[2]]) . ")";
if ((eval($imgtype)) || (in_array(strtoupper(array_pop(explode('.', basename($image)))),$not_supported_formats))) {
$image = substr ($image, (strrpos (DIR_FS_CATALOG . '/', '/'))+1);
return $image;

}

if (!isset ($x)) $x = floor ($y * $imagedata[0] / $imagedata[1]);


if (!isset ($y)) $y = floor ($x * $imagedata[1] / $imagedata[0]);

if ($aspectratio && isset ($x) && isset ($y)) {
if ((($imagedata[1]/$y) > ($imagedata[0]/$x) )){
$x=ceil(($imagedata[0]/$imagedata[1])* $y);
} else {
$y=ceil($x/($imagedata[0]/$imagedata[1]));
}
}
$thumbfile = '/' . basename($image);
if (file_exists ($cachedir.$thumbfile)) {
$thumbdata = getimagesize ($cachedir.$thumbfile);
$thumbdata[0] == $x && $thumbdata[1] == $y
? $iscached = true
: $iscached = false;
if (@filemtime($cachedir.$thumbfile) < @filemtime($image))
$iscached = false;
} else {
$iscached = false;
}

if (!$iscached) {
($imagedata[0] > $x || $imagedata[1] > $y) || (($imagedata[0] < $x || $imagedata[1] < $y) && $resize)
? $makethumb = true
: $makethumb = false;
} else {
$makethumb = false;
}



if ($makethumb) {
$image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
if (function_exists("imagecreatetruecolor") && ($thumb = imagecreatetruecolor ($x, $y))) {
imagecopyresampled ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
} else {
$thumb = imagecreate ($x, $y);
imagecopyresized ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
}
call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
imagedestroy ($image);
imagedestroy ($thumb);
$image = DIR_WS_IMAGES . 'imagecache' . $thumbfile;
} else {
$iscached
? $image = DIR_WS_IMAGES . 'imagecache' . $thumbfile
: $image = substr ($image, (strrpos (DIR_FS_CATALOG . '/', '/'))+1);
}
return $image;

}
?>[/code]

jpf
04-01-2006, 11:58 AM
I sorry but that breaks the "Ultimate SEO URLs" and there is another error further down the form where you got:

'''and should be:
'& #039;'(Without the space) But I think that is being stripped out by the HTML display.

Better instructions are:

Find (starting at about line 250):

// The HTML image wrapper function
function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
return false;
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}

if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
if ($image_size = @getimagesize($src)) {
if (empty($width) && tep_not_null($height)) {
$ratio = $height / $image_size[1];
$width = $image_size[0] * $ratio;
} elseif (tep_not_null($width) && empty($height)) {
$ratio = $width / $image_size[0];
$height = $image_size[1] * $ratio;
} elseif (empty($width) && empty($height)) {
$width = $image_size[0];
$height = $image_size[1];
}
} elseif (IMAGE_REQUIRED == 'false') {
return false;
}
}

if (tep_not_null($width) && tep_not_null($height)) {
$image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
}

And replace it with:

// The HTML image wrapper function
function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
return false;
}
if ($image_size = @getimagesize($src)) {
if ((CONFIG_CALCULATE_IMAGE_SIZE == 'true' && $src != DIR_WS_IMAGES . 'pixel_black.gif' && $src != DIR_WS_IMAGES . 'pixel_trans.gif' && $src != DIR_WS_IMAGES . 'pixel_silver.gif' )) {
if ( ($width) || ($height) ) {
if ( $width=="100%" ) {
$width = $image_size[0];
} elseif ( $height=="100%" ) {
$height = $image_size[1];
} elseif ( $width==0 ) {
unset($width);
} elseif ( $height==0 ) {
unset($height);
}
$src=thumbimage(DIR_FS_CATALOG . '/' .$src, $width, $height, 1, 1, DIR_FS_CATALOG . '/' . DIR_WS_IMAGES . 'imagecache');
if ((($image_size[1]/$height) > ($image_size[0]/$width) ) && $height>0){
$width=ceil(($image_size[0]/$image_size[1])* $height);
} elseif ($width>0) {
$height=ceil($width/($image_size[0]/$image_size[1]));
}
}
}
} elseif (IMAGE_REQUIRED == 'false') {
return '';
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}


if (tep_not_null($width) && tep_not_null($height)) {
$image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
}

And to the BOTTOM of the file - before the last ?>
Add:

function thumbimage ($image, $x, $y, $aspectratio, $resize, $cachedir){

/*##############################################
# - Thumbnail-Script v1.3 - #
# Generating thumbnails 'on-the-fly' with PHP #
# #
# (c) by Christian Lamine, FlashDreams OHG #
# http://www.flashdreams.de/ #
# #
# Modified by http://www.tse.at #
# Modified by lars@iwer.de #
# #
# This script may be freely used, distributed #
# and modified without any charge as long as #
# this copyright information is included. #
# #
# Any commercial selling of this script is #
# forbidden. #
# #
# The author is not responsible for possible #
# damage which may result from the application #
# of this script, neither direct nor indirect. #
# Use at your own risk! #
##############################################*/

error_reporting(0);

$types = array (1 => "gif", "jpeg", "png", "swf", "psd", "wbmp");
$not_supported_formats = array ("GIF"); // Write in capital Letters!!
umask(0);
!is_dir ($cachedir)
? mkdir ($cachedir, 0777)
: system ("chmod 0777 ".$cachedir);

(!isset ($x) || ereg ('^[0-9]{1,}$', $x, $regs)) &&
(!isset ($y) || ereg ('^[0-9]{1,}$', $y, $regs)) &&
(isset ($x) || isset ($y))
? true
: DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');

!isset ($resize) || !ereg ('^[0|1]$', $resize, $regs)
? $resize = 0
: $resize;

!isset ($aspectratio) || !ereg ('^[0|1]$', $aspectratio, $regs)
? isset ($x) && isset ($y)
? $aspectratio = 1
: $aspectratio = 0
: $aspectratio;

!isset ($image)
? DIE ('Es wurde kein Bild angegeben!')
: !file_exists($image)
? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
: false;

$imagedata = getimagesize($image);

!$imagedata[2] || $imagedata[2] == 4 || $imagedata[2] == 5
? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
: false;

$imgtype="!(ImageTypes() & IMG_" . strtoupper($types[$imagedata[2]]) . ")";
if ((eval($imgtype)) || (in_array(strtoupper(array_pop(explode('.', basename($image)))),$not_supported_formats))) {
$image = substr ($image, (strrpos (DIR_FS_CATALOG . '/', '/'))+1);
return $image;

}

if (!isset ($x)) $x = floor ($y * $imagedata[0] / $imagedata[1]);


if (!isset ($y)) $y = floor ($x * $imagedata[1] / $imagedata[0]);

if ($aspectratio && isset ($x) && isset ($y)) {
if ((($imagedata[1]/$y) > ($imagedata[0]/$x) )){
$x=ceil(($imagedata[0]/$imagedata[1])* $y);
} else {
$y=ceil($x/($imagedata[0]/$imagedata[1]));
}
}
$thumbfile = '/' . basename($image);
if (file_exists ($cachedir.$thumbfile)) {
$thumbdata = getimagesize ($cachedir.$thumbfile);
$thumbdata[0] == $x && $thumbdata[1] == $y
? $iscached = true
: $iscached = false;
if (@filemtime($cachedir.$thumbfile) < @filemtime($image))
$iscached = false;
} else {
$iscached = false;
}

if (!$iscached) {
($imagedata[0] > $x || $imagedata[1] > $y) || (($imagedata[0] < $x || $imagedata[1] < $y) && $resize)
? $makethumb = true
: $makethumb = false;
} else {
$makethumb = false;
}



if ($makethumb) {
$image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
if (function_exists("imagecreatetruecolor") && ($thumb = imagecreatetruecolor ($x, $y))) {
imagecopyresampled ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
} else {
$thumb = imagecreate ($x, $y);
imagecopyresized ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
}
call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
imagedestroy ($image);
imagedestroy ($thumb);
$image = DIR_WS_IMAGES . 'imagecache' . $thumbfile;
} else {
$iscached
? $image = DIR_WS_IMAGES . 'imagecache' . $thumbfile
: $image = substr ($image, (strrpos (DIR_FS_CATALOG . '/', '/'))+1);
}
return $image;

}

jpf
04-01-2006, 12:24 PM
Just to note: This will cause on sites with heavy traffic ALOT of CPU cycles to be used and may slow down the webpages for your site and OTHER sites on the same server. You could get a warning or shut down if the HOSTING company deams it against there policy or may force you to upgrade to a dedicated server.


Also Translation:

: DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');
: DIE ('ERROR: Missing or invalid size parameter(s)!');

? DIE ('Es wurde kein Bild angegeben!')
? DIE ('ERROR: Link to picture was not supplied!')

? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
? DIE ('ERROR: The file could not be found on the server!')

? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
? DIE ('ERROR: The file it does not contain a picture!')


OR:
in each language file (ie: catalog/includes/languages/english.php) add to the bottom if the file - before the last ?>

//BOF: MOD - Thumbnail-Script v1.3
define('THUMBNAIL_INVALID', 'ERROR: Missing or invalid size parameter(s)!');
define('THUMBNAIL_NOLINK', 'ERROR: Link to picture was not supplied!');
define('THUMBNAIL_NOFILE', 'ERROR: The file could not be found on the server!');
define('THUMBNAIL_NOPICTURE', 'ERROR: The file it does not contain a picture!');
//EOF: MOD - Thumbnail-Script v1.3

German:
//BOF: MOD - Thumbnail-Script v1.3
define('THUMBNAIL_INVALID', 'Fehlende(r) oder ungültige(r) Größenparameter!');
define('THUMBNAIL_NOLINK', 'Es wurde kein Bild angegeben!')
define('THUMBNAIL_NOFILE', 'Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
define('THUMBNAIL_NOPICTURE', 'Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
//EOF: MOD - Thumbnail-Script v1.3


In html_output.php change:
: DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');
to
: DIE (THUMBNAIL_INVALID);

? DIE ('Es wurde kein Bild angegeben!')
to
? DIE (THUMBNAIL_NOLINK)

? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
to
? DIE (THUMBNAIL_NOFILE)

? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
to
? DIE (THUMBNAIL_NOPICTURE)

Good Luck!