Jump to content



Latest News: (loading..)

* * * * * 10 votes

Support thread for the Image Magic contribution


  • Please log in to reply
1270 replies to this topic

#101   adx

adx
  • Members
  • 26 posts
  • Real Name:adxgrave

Posted 29 November 2005 - 10:53 PM

View Postgiapet, on Nov 29 2005, 12:40 AM, said:

Tom,

Still not working.

Is there a way to code this to combine the fact the pixel itself has a width%?

// Don't calculate if the image is set to a "%" width
  if (strstr($width,'%') == true || strstr($height,'%') == true) $calculate = false;

  // Dont calculate if a pixel image is being passed (hope you dont have pixels for sale)
  if (strstr($image, 'pixel')) $calculate = false;

Karen

Karen,

My tep_draw_separator is working now. Try change "allow thumbnails larger than original" to True in i/m setting. It works for me.

Thanks.

#102   tomjmul

tomjmul
  • Members
  • 196 posts
  • Real Name:Tom Muldown
  • Location:Ireland

Posted 29 November 2005 - 11:11 PM

View Postadx, on Nov 29 2005, 10:53 PM, said:

Karen,

My tep_draw_separator is working now. Try change "allow thumbnails larger than original" to True in i/m setting. It works for me.

Thanks.


Karen,

That should prove very useful in pinning down the issue. Thanks

Tom
OSC Image Magic
On-the-fly thumbnails, watermarks and image processing

#103   RLD

RLD
  • Members
  • 11 posts
  • Real Name:Ryan Lanham

Posted 30 November 2005 - 12:19 AM

Ok I have followed all the instuctions but for some reason when you try to access my catalog....

www.merchinv.com/catalog/

is shows just a white screen.

The link above is just a reference link I had to revert to the backup files as this is a live site.

I do however get this error in my error log.

[30-Nov-2005 00:15:40] PHP Parse error:  parse error, unexpected '}' in /catalog/includes/functions/html_output.php on line 229


Here is the code for my html_output page...

<?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
 // BOF Image Magic 
function tep_image($src, $alt = '', $width = '', $height = '', $params = '') {  
  global $product_info;
  
  //Allow for a new intermediate sized thumbnail size to be set 
  //without any changes having to be made to the product_info page itself. 
  //(see the lengths I go to to make your life easier :-)
  if (strstr($_SERVER['PHP_SELF'],"product_info.php")) {
		   
		if (isset($product_info['products_image']) 
				   && $src == DIR_WS_IMAGES . $product_info['products_image']
				   && $product_info[products_id]==$_GET['products_id'])  {   //final check just to make sure that we don't interfere with other contribs
			$width = PRODUCT_INFO_IMAGE_WIDTH == 0?'':PRODUCT_INFO_IMAGE_WIDTH;
			$height = PRODUCT_INFO_IMAGE_HEIGHT == 0?'':PRODUCT_INFO_IMAGE_HEIGHT;
			$product_info_image=true;
			$page="prod_info"; 
		}
  }
  
  //Detect whether this is a pop-up image
  if (strstr($_SERVER['PHP_SELF'],"popup_image.php")) $page="popup";
		 
  //do we apply the IE PNG alpha transparency fix?
  if  (strstr(strtolower($src),".png") && CFG_PNG_BUG=="True") $fix_png = true;
		
  //send the image for processing unless told otherwise
  $image = '<img src="' . $src . '"'; //set up the image tag just in case we don't want to process
  if (CFG_MASTER_SWITCH=="On") $calculate = true;
  else $calculate=false;
  
  // Don't calculate if the image is set to a "%" width
  if (strstr($width,'%') == true || strstr($height,'%') == true) $calculate = false; 

  // Dont calculate if a pixel image is being passed (hope you dont have pixels for sale)
  if (strstr($image, 'pixel')) $calculate = false;
  
  
  $image_size = @getimagesize($src);

  
  // Decide whether or not we want to process this image
  if (($width == '' && $height == '' && $page != 'popup' ) || ($width == $image_size[0] && $height == $image_size[0] && $page != 'popup')) {  
		if (CFG_PROCESS_GRAPHICS=="False") $calculate = false; //looks like this is a store graphic rather than product image
  }	

  // Is this image good to go?
  if (CONFIG_CALCULATE_IMAGE_SIZE && $calculate) { 
		  
  if ($image_size) { 
	  
	  $ratio = $image_size[1] / $image_size[0];
	  
	  // Set the width and height to the proper ratio
	  if (!$width && $height) { 
		$ratio = $height / $image_size[1]; 
		$width = intval($image_size[0] * $ratio); 
	  } elseif ($width && !$height) { 
		$ratio = $width / $image_size[0]; 
		$height = intval($image_size[1] * $ratio); 
	  } elseif (!$width && !$height && !$over_ride) { 
		$width = $image_size[0]; 
		$height = $image_size[1]; 
	  } 

	  //Encrypt the image filename if switched on
		if (CFG_ENCRYPT_FILENAMES == "True" && CFG_ENCRYPTION_KEY !="") {
			  $result = '';
			  $key=CFG_ENCRYPTION_KEY;
			  for($i=0; $i<strlen($src); $i++) {
				  $char = substr($src, $i, 1);
				  $keychar = substr($key, ($i % strlen($key))-1, 1);
				  $char = chr(ord($char)+ord($keychar));
				  $result.=$char;
			  }
			  $src=urlencode(base64_encode($result));
		}
			
	   //Return the html
		$image = '<img src="imagemagic.php?img='.$src.'&w='.
		tep_output_string($width).'&h='.tep_output_string($height).'&page='.$page.'"';
	  
	} elseif (IMAGE_REQUIRED == 'false') { 
	  return ''; 
	} 
  }  
  
	//If the size asked for is greater than the image itself, we check the configs to see if this is allowed and if not over-ride
  if ($width > $image_size[0] || $height > $image_size[1]) {
		if (CFG_ALLOW_LARGER  != 'True'){
			  $width=$image_size[0];
			  $height=$image_size[1];
			  $over_ride = true;
		}
  }
  // Add remaining image parameters if they exist
  if ($width) { 
	$image .= ' width="' . tep_output_string($width) . '"'; 
  } 
  
  if ($height) { 
	$image .= ' height="' . tep_output_string($height) . '"'; 
  }	 
  
  if (tep_not_null($params)) $image .= ' ' . $params;
  
  $image .= ' border="0" alt="' . tep_output_string($alt) . '"';
  
  if (tep_not_null($alt)) {
	$image .= ' title="' . tep_output_string($alt) . '"';
  }
  
  if ($fix_png && CFG_MASTER_SWITCH=="On") {
		$image .= ' onload="fixPNG(this)"'; 
  }
  
  $image .= '>';   
  return $image; 
}
//EOF Image Magic


// 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;
  }

////
// 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('"' => '&quot;', '\'' => ''', '<' => '&lt;', '>' => '&gt;')) . '</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);
  }
?>


#104   RLD

RLD
  • Members
  • 11 posts
  • Real Name:Ryan Lanham

Posted 30 November 2005 - 12:34 AM

Ok im an idoit ... i fixed that error....everything is installed and I can see the image magic settings in the admin. I have my height set to 139 and 0 on the width for all images in my images configuration. However for some reason my images are not being processed, nor do i have a thumbnails folder created.

www.merchinv.com/catalog

Thanks

#105   tomjmul

tomjmul
  • Members
  • 196 posts
  • Real Name:Tom Muldown
  • Location:Ireland

Posted 30 November 2005 - 12:51 AM

View PostRLD, on Nov 30 2005, 12:34 AM, said:

Ok im an idoit ... i fixed that error....everything is installed and I can see the image magic settings in the admin. I have my height set to 139 and 0 on the width for all images in my images configuration. However for some reason my images are not being processed, nor do i have a thumbnails folder created.

www.merchinv.com/catalog

Thanks


I have now answered this countless times and it is also in the readme. The solution is to create a folder called thumbnails in your store's root folder (catalog in your case) and chmod it to 777

Tom
OSC Image Magic
On-the-fly thumbnails, watermarks and image processing

#106   qubertman

qubertman
  • Members
  • 6 posts
  • Real Name:Qubert Man

Posted 30 November 2005 - 02:13 AM

Hello,

Is this possible, using your contribution and the Products Sold contribution to generate a watermark SOLD on sold products in the product listing?

Thanks!

#107   andytc

andytc
  • Members
  • 249 posts
  • Real Name:andy carter
  • Location:UK

Posted 30 November 2005 - 10:59 AM

Ok , got it all working fine.

a fresh install and it all went really easy.

I think my previous attempt was messed up with other contribs installed.

I'm using this with Ultra pics V1.0

Thanks !  :)

#108   RLD

RLD
  • Members
  • 11 posts
  • Real Name:Ryan Lanham

Posted 30 November 2005 - 04:02 PM

Is this supppose to work on the images that are already in my store? Or only when I add new pictures?

#109   tomjmul

tomjmul
  • Members
  • 196 posts
  • Real Name:Tom Muldown
  • Location:Ireland

Posted 30 November 2005 - 04:07 PM

View PostRLD, on Nov 30 2005, 04:02 PM, said:

Is this supppose to work on the images that are already in my store? Or only when I add new pictures?

It works with your existing images
OSC Image Magic
On-the-fly thumbnails, watermarks and image processing

#110   Hebe73

Hebe73
  • Members
  • 157 posts
  • Real Name:Giovanna
  • Location:Manchester, UK

Posted 30 November 2005 - 06:38 PM

I have got this installed and working, absolutly brilliant. The only thing is that the watermarks dont work. Any idea.
Let me know if you need my website link or any other info.

Edit: Just found i get an error when i want to change the font or image:

Fatal error: Call to undefined function: tep_cfg_pull_down_installed_fonts() in C:\Domains\homesweetholland.co.uk\wwwroot\catalog\new\admin\configuration.php(125) : eval()'d code on line 1

Not realy sure where to look as on the configuration.php line 1 is <?php

Giovanna

Edited by Hebe73, 30 November 2005 - 06:41 PM.


#111   tomjmul

tomjmul
  • Members
  • 196 posts
  • Real Name:Tom Muldown
  • Location:Ireland

Posted 30 November 2005 - 06:50 PM

You have either not made the modification to admin/includes/functions/general.php or have done so incorrectly.
OSC Image Magic
On-the-fly thumbnails, watermarks and image processing

#112   Hebe73

Hebe73
  • Members
  • 157 posts
  • Real Name:Giovanna
  • Location:Manchester, UK

Posted 30 November 2005 - 07:02 PM

Cheers, took my backup and redone the file and it is working now. Man, you are almost as quick as my host. (My host responds on average within 10 minutes of me mailing him)

I will link to your site. Mainly to the Dutch shirt your selling, as my main audience is Dutch Expats that live in the UK. With the oncoming World Cup, I will definatly send some customers your way.

Ta,

Giovanna

#113   RLD

RLD
  • Members
  • 11 posts
  • Real Name:Ryan Lanham

Posted 30 November 2005 - 07:25 PM

Ok got the I/M working on my site just fine however in the admin sections when I go to select a watermark or font type in the drop down...I have no options for the ones that are there. It shows them as blank. There is nothing in the drop down however there are files in both directorys.

#114   Simon-QAS

Simon-QAS
  • Members
  • 6 posts
  • Real Name:Simon

Posted 01 December 2005 - 04:44 PM

Hi,

I've no idea but the script doesn't wanna work at my shop... I've done everything like it's explained in the readme. No watermarks, no image caching.. nothing. Everything in this script looks so useful, even the watermarks - i looked several times for scripts where watermarks are set automatically - and now i found it. But it doesn't work.

And the curious part: I don't get ANY error message shown.


Which code do I have to quote to get you a small overview? the html_output.php maybe ?

it's right here:

Quote

<?php
/*
  $Id: html_output.php,v 1.1.1.1 2003/08/25 10:24:21 pschapler Exp $

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

  Copyright © 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 . $_sid;
    }

    return $link;
  }

////
// The HTML image wrapper function
  // BOF Image Magic
function tep_image($src, $alt = '', $width = '', $height = '', $params = '') {
  global $product_info;

  //Allow for a new intermediate sized thumbnail size to be set
  //without any changes having to be made to the product_info page itself.
  //(see the lengths I go to to make your life easier :-)
  if (strstr($_SERVER['PHP_SELF'],"product_info.php")) {

        if (isset($product_info['products_image'])
                   && $src == DIR_WS_IMAGES . $product_info['products_image']
                   && $product_info[products_id]==$_GET['products_id'])  {   //final check just to make sure that we don't interfere with other contribs
            $width = PRODUCT_INFO_IMAGE_WIDTH == 0?'':PRODUCT_INFO_IMAGE_WIDTH;
            $height = PRODUCT_INFO_IMAGE_HEIGHT == 0?'':PRODUCT_INFO_IMAGE_HEIGHT;
            $product_info_image=true;
            $page="prod_info";
        }
  }

  //Detect whether this is a pop-up image
  if (strstr($_SERVER['PHP_SELF'],"popup_image.php")) $page="popup";

  //do we apply the IE PNG alpha transparency fix?
  if  (strstr(strtolower($src),".png") && CFG_PNG_BUG=="True") $fix_png = true;

  //send the image for processing unless told otherwise
  $image = '<img src="' . $src . '"'; //set up the image tag just in case we don't want to process
  if (CFG_MASTER_SWITCH=="On") $calculate = true;
  else $calculate=false;

  // Don't calculate if the image is set to a "%" width
  if (strstr($width,'%') == true || strstr($height,'%') == true) $calculate = false;

  // Dont calculate if a pixel image is being passed (hope you dont have pixels for sale)
  if (strstr($image, 'pixel')) $calculate = false;


  $image_size = @getimagesize($src);


  // Decide whether or not we want to process this image
  if (($width == '' && $height == '' && $page != 'popup' ) || ($width == $image_size[0] && $height == $image_size[0] && $page != 'popup')) {
        if (CFG_PROCESS_GRAPHICS=="False") $calculate = false; //looks like this is a store graphic rather than product image
  }

  // Is this image good to go?
  if (CONFIG_CALCULATE_IMAGE_SIZE && $calculate) {

  if ($image_size) {

      $ratio = $image_size[1] / $image_size[0];

      // Set the width and height to the proper ratio
      if (!$width && $height) {
        $ratio = $height / $image_size[1];
        $width = intval($image_size[0] * $ratio);
      } elseif ($width && !$height) {
        $ratio = $width / $image_size[0];
        $height = intval($image_size[1] * $ratio);
      } elseif (!$width && !$height && !$over_ride) {
        $width = $image_size[0];
        $height = $image_size[1];
      }

      //Encrypt the image filename if switched on
        if (CFG_ENCRYPT_FILENAMES == "True" && CFG_ENCRYPTION_KEY !="") {
              $result = '';
              $key=CFG_ENCRYPTION_KEY;
              for($i=0; $i<strlen($src); $i++) {
                  $char = substr($src, $i, 1);
                  $keychar = substr($key, ($i % strlen($key))-1, 1);
                  $char = chr(ord($char)+ord($keychar));
                  $result.=$char;
              }
              $src=urlencode(base64_encode($result));
        }

       //Return the html
        $image = '<img src="imagemagic.php?img='.$src.'&w='.
        tep_output_string($width).'&h='.tep_output_string($height).'&page='.$page.'"';

    } elseif (IMAGE_REQUIRED == 'false') {
      return '';
    }
  }

    //If the size asked for is greater than the image itself, we check the configs to see if this is allowed and if not over-ride
  if ($width > $image_size[0] || $height > $image_size[1]) {
        if (CFG_ALLOW_LARGER  != 'True'){
              $width=$image_size[0];
              $height=$image_size[1];
              $over_ride = true;
        }
  }
  // Add remaining image parameters if they exist
  if ($width) {
    $image .= ' width="' . tep_output_string($width) . '"';
  }

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

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

  $image .= ' border="0" alt="' . tep_output_string($alt) . '"';

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

  if ($fix_png && CFG_MASTER_SWITCH=="On") {
        $image .= ' onload="fixPNG(this)"';
  }

  $image .= '>';
  return $image;
}
//EOF Image Magic


// 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;

// 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 .= ' class="borderStyle">';

    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 .= stripslashes($GLOBALS[$name]);
    } elseif (tep_not_null($text)) {
      $field .= $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('"' => '&quot;', '\'' => ''', '<' => '&lt;', '>' => '&gt;')) . '</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);
  }
?>


Thank you very much in advance

#115   tomjmul

tomjmul
  • Members
  • 196 posts
  • Real Name:Tom Muldown
  • Location:Ireland

Posted 01 December 2005 - 05:13 PM

View PostSimon-QAS, on Dec 1 2005, 04:44 PM, said:

And the curious part: I don't get ANY error message shown.
Which code do I have to quote to get you a small overview? the html_output.php maybe ?

Just the link to the site thanks where image magic is installed.
OSC Image Magic
On-the-fly thumbnails, watermarks and image processing

#116   Simon-QAS

Simon-QAS
  • Members
  • 6 posts
  • Real Name:Simon

Posted 01 December 2005 - 05:47 PM

it's www.QuantumAutoSport.com


thank you

Oh, and GD Lib >2 is installed and enabled.

Edited by Simon-QAS, 01 December 2005 - 05:48 PM.


#117   lancert

lancert
  • Members
  • 12 posts
  • Real Name:Lance
  • Location:Des Moines, Iowa

Posted 01 December 2005 - 07:10 PM

Bravo! This contribution is awesome! Awesome in function, documentation, and support! Thanks tomjmul (and others) for all of your work and time on this contribution!

Lance
Lance

#118   Simon-QAS

Simon-QAS
  • Members
  • 6 posts
  • Real Name:Simon

Posted 01 December 2005 - 11:18 PM

I'm pretty sure that this contribution is awesome, because it's exactly what I need, but I can't use it at the moment  :-/

#119   adx

adx
  • Members
  • 26 posts
  • Real Name:adxgrave

Posted 01 December 2005 - 11:58 PM

Hi,

I'm a bit confused. In readme.html, there's instruction to backup "catalog/admin/includes/functions/html_output.php" but along the way down there's no instruction to change this file. Am I missing something here?

Also, I've install 'On The Fly' Auto Thumbnailer before. I've removed it just to see what happen and my admin section have no image anymore.

Advice?

Adx

#120   embalmer

embalmer
  • Members
  • 18 posts
  • Real Name:Daniel Petrino

Posted 02 December 2005 - 07:42 AM

read back a couple pages bra..... he took out the admin files....