Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Support thread for the Image Magic contribution


tomjmul

Recommended Posts

Hello guys,

I installed the contribution on RC2 and:

A graphic I had under my subcategories on the left side has dissapeared.

and I'm getting EI script errors all over the place such as:

 

An error has occurred in the script on this page.

line: 27

Char: 1

Error: Object Expected

Code: 0

URL: http://mysite.com/catalog/index.php

 

 

then when I navigate the site..

 

line: 27

Char: 1

Error: Object Expected

Code: 0

URL: http://mysite.com/catalog/index.php?cPath=1

 

 

line: 32

Char: 1

Error: Object Expected

Code: 0

URL: http://mysite.com/catalog/product_info.php?products_id=39

 

 

and so on...

 

Is there anybody that knows about this issue? :huh:

 

Please help

 

Looks like there is a character missing in your php code.. Or that you accidentaly deleted one..

Link to comment
Share on other sites

  • Replies 1.3k
  • Created
  • Last Reply

Top Posters In This Topic

I've installed Image Magic and made sure that everything is in the proper folder and that edits were done in the proper directories/files.

 

I am getting this error now when I try to log into my catolog admin:

 

Fatal error: Call to undefined function tep_image() in /usr/home/tfs/public_html/shop/admin/includes/header.php on line 19

 

What's odd is that the error is on the ADMIN/includes/header.php when nothing was edited in that file. The file that the instructions gave for optional editing was the shop/includes/header.php

 

Any ideas?

Link to comment
Share on other sites

I've installed Image Magic and made sure that everything is in the proper folder and that edits were done in the proper directories/files.

 

I am getting this error now when I try to log into my catolog admin:

 

Fatal error: Call to undefined function tep_image() in /usr/home/tfs/public_html/shop/admin/includes/header.php on line 19

 

What's odd is that the error is on the ADMIN/includes/header.php when nothing was edited in that file. The file that the instructions gave for optional editing was the shop/includes/header.php

 

Any ideas?

 

 

I've uninstalled the contribution, uploaded my backup html_output file, restored my sql database and my general.php too.

The storefront is perfectly fine, but I still can't enter my admin side. because of the error above.

 

Line 19 reads:

 

<td colspan="2"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . 'oscommerce.png', PROJECT_VERSION) . '</a>'; ?></td>

Link to comment
Share on other sites

  • 3 weeks later...

OMG! I´ve read all the thread! And I can´t find my problem. Image Magic doesn´t appear in my ADMIN zone... ¿Any idea? Some one fixed this problem im some post, but didn´t posted "how". I paste my files, thx in advance!

 

ROOT/includes/functions/html_output.php

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

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

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

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

 

And ONLY THE LAST PART of my ROOT/admin/includes/functions/general.php

 

// make sure no duplicate category IDs exist which could lock the server in a loop
$tmp_array = array();
$n = sizeof($cPath_array);
for ($i=0; $i<$n; $i++) {
  if (!in_array($cPath_array[$i], $tmp_array)) {
	$tmp_array[] = $cPath_array[$i];
  }
}

return $tmp_array;
 }
function tep_cfg_readonly($value){
   $single[]= array('id' => $value,
					 'text' => $value);
   return tep_draw_pull_down_menu('configuration_value', $single, $value);
  }

  function tep_cfg_pull_down_installed_fonts($font_name) {
   if ($root=@opendir(DIR_FS_DOCUMENT_ROOT.'includes/imagemagic/fonts')){
		 while ($file=readdir($root)){
			   if($file=="." || $file==".." || is_dir($dir."/".$file)) continue;
			   $files[]= array('id' => $file,
							 'text' => $file);
		 }
   }
   return tep_draw_pull_down_menu('configuration_value', $files, $font_name);
}

  function tep_cfg_pull_down_installed_watermarks($watermark_name) {
   if ($root=@opendir(DIR_FS_DOCUMENT_ROOT.'includes/imagemagic/watermarks')){
		 while ($file=readdir($root)){
			   if($file=="." || $file==".." || is_dir($dir."/".$file)) continue;
			   $files[]= array('id' => $file,
							 'text' => $file);
		 }
   }
   return tep_draw_pull_down_menu('configuration_value', $files, $watermark_name);
}

  function tep_cfg_pull_down_watermark_alignment($watermark_alignment) {
   $align[]= array('id' => 'Tiled',
					 'text' => 'Tiled');
   $align[]= array('id' => 'Top',
					 'text' => 'Top');
   $align[]= array('id' => 'Top Left',
					 'text' => 'Top Left');
   $align[]= array('id' => 'Top Right',
					 'text' => 'Top Right');
   $align[]= array('id' => 'Center',
					 'text' => 'Center');
   $align[]= array('id' => 'Bottom',
					 'text' => 'Bottom');
   $align[]= array('id' => 'Bottom Left',
					 'text' => 'Bottom Left');	
   $align[]= array('id' => 'Bottom Right',
					 'text' => 'Bottom Right');																																									
   return tep_draw_pull_down_menu('configuration_value', $align, $watermark_alignment);
} 

?>

 

 

I´ve follow all the instructions, I´m running OSC 2.2ms2, and imagemagic 1.16 (I couldn´t find a later version)

 

Thanks!

Link to comment
Share on other sites

OMG! I´ve read all the thread! And I can´t find my problem. Image Magic doesn´t appear in my ADMIN zone... ¿Any idea? Some one fixed this problem im some post, but didn´t posted "how". I paste my files, thx in advance!

 

and SQL file ? did you import it ?

ms2fr delaballe + "main_categories1.0c_1" ; del column_right ;compatibilité AOL ; DYNAMENUS ; login box ; Twenga_xml ; leguide_xml ; create_pdf,v 1.4 (factures) ; quick stock update ; pdf_katalog_206 ok ; CCGV Trad ; Stock list ; Stock icones ; FCK editor ; newsletter subscriber ; Admin Access Level (not activ) ;

Link to comment
Share on other sites

  • 1 month later...

a rising issue is PERFORMANCE with Image Magic (which hasn't been yet fixed in recent releases as 1.14 by mortal or 1.16).

 

with IMAGE MAGIC, the more pictures in your thumbnails folders, the longer it takes to perform a routine to clean the cache folder.

 

therefore, it takes LONGER and LONGER to generate a thumbnail. It's getting slower and slower and can kill your server and crash it rapidly

if thumbnails are generated on the fly simultaneously.

 

I had hard times figuring the problems at first but now it seems to be localized. you have to look the function modify_tn_path in the imagemagic.php file

 

the following code is the source of the problem:

 

it looks each file and compare to the hash, delete if different. when you have thousands of pics in the folder, that might take some time and a lot of CPU USAGE,

 

even if there are no files matching the patterns. So actually you are running some routines that you could rune once in a while.

 

 

				  foreach (glob("*.*") as $filename) {
					if (!is_dir($filename) && !strstr($filename,$append_hash)) {
						  unlink($filename);
					}
			  }

 

}

so the patch is to deactivate/comment this part... and create a script to perform separately the cache cleaning part (and put in on a cron job).

 

instead of running it each time you generate a thumb, better run it once in a while and separately.

 

you will save a lot of time, CPU usage.... and thumbnails will generate much much faster!

Edited by demoalt
Link to comment
Share on other sites

  • 3 months later...

Hi all,

 

I have just installed this contribution but the images are not showing. In the image properties I see the path

www.myserver.com/imagemagic.php?img=images/products/656321.jpg&w=160&h=160&page=

If I copy/paste this link to an empty page in the browser I see the same text where I should see the image instead. Looking at the cache folder, the thumbnail is there, with the correct size. I guess the problem comes from the imagemagic.php file where is returning the image path instead of the image itself (is it possible)...

 

Any help is welcome...

Link to comment
Share on other sites

  • 1 month later...

Hi there, I get the following error.

 

[Mon Dec 14 00:29:49 2009] [error] [client 87.194.49.148] PHP Notice:  Use of undefined constant file - assumed 'file' in /var/www/vhosts/gloveclub.co.uk/httpdocs/imagemagic.php on line 395, referer: http://www.gloveclub.co.uk/spray-wipe-sanitizer-pi-573.html

 

Has anyone else experienced this? and if so know of a fix? Cant see any new images uploaded.

 

Thanks

Parma

Link to comment
Share on other sites

  • 2 months later...

Here is my code snippet from html_output.php:

 

// The HTML image wrapper function
  //see copy2 to replace original; tep_image section of code
  //image magic contrib below

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

  //eo image magic contrib

 

 

&here is my current product_info.php file:

 

<?php
/*
 $Id: product_info.php 1739 2007-12-20 00:52:16Z hpdl $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);

 $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
 $product_check = tep_db_fetch_array($product_check_query);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script language="javascript"><!--
function popupWindow(url) {
 window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
}
//--></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
<?php
 if ($product_check['total'] < 1) {
?>
     <tr>
       <td><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
<!-- adzznote: deleted infobox; refer file copy to replace if needed //-->

           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
<?php
 } else {
   $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
   $product_info = tep_db_fetch_array($product_info_query);

   tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

   if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
     $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
   } else {
     $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
   }

   if (tep_not_null($product_info['products_model'])) {
     $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>';
   } else {
     $products_name = $product_info['products_name'];
   }
?>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading" valign="top"><?php echo $products_name; ?></td>
           <td class="pageHeading" align="left" valign="center"><?php echo $products_price; ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main">
<?php
   if (tep_not_null($product_info['products_image'])) {
?>
         <table border="0" cellspacing="0" cellpadding="2" align="center">
           <tr>
             <td align="center" class="smallText">
<script language="javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');
//--></script>
<noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>
</noscript>
             </td>
           </tr>
         </table>
<?php
   }
?>
         <p><?php echo stripslashes($product_info['products_description']); ?></p>
<?php
   $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
   $products_attributes = tep_db_fetch_array($products_attributes_query);
   if ($products_attributes['total'] > 0) {
?>
         <table border="0" cellspacing="0" cellpadding="2">
           <tr>
             <td class="main" colspan="2"><?php echo TEXT_PRODUCT_OPTIONS; ?></td>
           </tr>
<?php
     $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
     while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
       $products_options_array = array();
       $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
       while ($products_options = tep_db_fetch_array($products_options_query)) {
         $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
         if ($products_options['options_values_price'] != '0') {
           $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
         }
       }

       if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
         $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
       } else {
         $selected_attribute = false;
       }
?>
           <tr>
             <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
             <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td>
           </tr>
<?php
     }
?>
         </table>
<?php
   }
?>
       </td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
   $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");
   $reviews = tep_db_fetch_array($reviews_query);
   if ($reviews['count'] > 0) {
?>
     <tr>
       <td class="main"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
   }

   if (tep_not_null($product_info['products_url'])) {
?>
     <tr>
       <td class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
   }

   if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
?>
     <tr>
       <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td>
     </tr>
<?php
   } else {
?>
     <tr>
       <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td>
     </tr>
<?php
   }
?>
     <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>

 <!-- <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
        <tr class="infoBoxContents">    -->

 <!-- adzznote: deleted infobox; refer file copy to replace if needed //-->
  <td><table border="0" width="100%" cellspacing="1" cellpadding="2">
        <tr>
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               <td class="main" align="center"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?></td>

               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
             </tr>

             <tr>
              <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

               <td class="main" align="center"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
             </tr>

           </table></td>
         </tr>
     </table></td>
     </tr>

     <tr>
       <td>  <?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?> </td>
     </tr>

     <tr>
    <td>
<?php
   if ((USE_CACHE == 'true') && empty($SID)) {
     echo tep_cache_also_purchased(3600);
   } else {
     include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);
   }
 }
?>
    </td>
    </tr>

   </table></form></td>
<!-- body_text_eof //-->





<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Can any of you code savvy people see any error/reason why im not getting the pic to show up in the products.info webpage??

 

all other images are showing, and imagemagic does show up in the url; however, images are not showing in the products info page....

 

thanks in advance :huh:

adam.

 

im on osc2.2 latest

Edited by adamsleath
Link to comment
Share on other sites

  • 2 months later...

Yes indeed, we came across a problem that I had not anticipated. It would seem that Mark has a version of the GD library installed on his host which does not have the freetype libraries linked in. This would prevent text watermarking ever working for him.

 

Tom

 

Oh sob, it appears that this is why this is not working on my (local) test site: I have i/m successfully working on my server site, but am trying to set up a local site - the GD library info states:

 

GD Support enabled

GD Version bundled (2.0.34 compatible)

GIF Read Support enabled

GIF Create Support enabled

JPEG Support enabled

libJPEG Version 6b

PNG Support enabled

libPNG Version 1.2.42

WBMP Support enabled

XBM Support enabled

 

Whilst my server site GD library info states:

 

GD Support enabled

GD Version bundled (2.0.28 compatible)

FreeType Support enabled

FreeType Linkage with freetype

GIF Read Support enabled

GIF Create Support enabled

JPG Support enabled

PNG Support enabled

WBMP Support enabled

XBM Support enabled

 

All images with text watermarks are breaking on the local version, everything else is working fine. If anyone has any suggestions, please let me know, otherwise it looks like I'll have to live without text watermarks :(

Link to comment
Share on other sites

  • 7 months later...

Is there a way to process all files at once from the command line or something so that they can be cached on the server and not have to be processed when someone loads a page with 20 products? It's pretty slow that way waiting for all the files to process and be rendered.

Link to comment
Share on other sites

  • 10 months later...

My host is moving to PHP5.3 in the next couple of months. I've been doing some preliminary work to my sites to test them for compatibility, but have hit a problem with imagemagic.

 

Basically, with register_long_arrays set to off, imagemagic doesn't work for me and just displays "error, file path incorrect, check configure.php". If I switch register_long_arrays back on, it works, but under PHP5.3, register_long_arrays is deprecated and can't be switched back on.

 

Any ideas or workarounds would be useful.

Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...

Further to the post above from andrew71 my host has moved to PHP5.3 and my product images no longer work.

 

Is there a work around available to overcome the issue ( with register_long_arrays set to off, imagemagic doesn't work for me and just displays "error, file path incorrect, check configure.php". If I switch register_long_arrays back on, it works, but under PHP5.3, register_long_arrays is deprecated and can't be switched back on.)

 

Please can anyone advise of a fix or work around?

 

Many thanks.

Paul

You will never learn if you don't try. And boy am I trying....!

Link to comment
Share on other sites

@@pafranklin

 

Image Magic is not supported. as you pointed out with the newer Php versions it's use has been discontinued. If you are using Image magic, I can only assume you are using an out-dated version of osCommerce and really should consider a creating a new cart using v2.3.1

 

 

 

 

Chris

Link to comment
Share on other sites

Hi, love this contribution and have been using it for some time but I've started using PNG images and they don't display under ImageMagic. Updating to the most recent version makes no difference.

 

This is on all browsers, Mac and PC not just IE. I've installed the IE fix anyway, but I still just get a blank "dead image link" box. Anyone else have this problem?

Link to comment
Share on other sites

  • 3 years later...

Anyone know how to uninstall this contribution? I have a working image handler (not this) but have some old code I've missed somewhere throwing errors in my error log. I can't seem to find where those errors are coming from. I did save all the contributions I've installed but this one had a link to the installation instructions that no longer exists. I could go backwards from the original installation instructions if I had them. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...