Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Looking for multiple image upload per product


eddiev2001

Recommended Posts

Posted

Hi Everyone ,

 

I'm looking for a contribution that will allow me to upload multiple pictures for a product..

 

example: a pair of jeans... I'd like to be able to showcase mulitple shots of the jeans, front, back, zipper...

 

Is there a contribution that will allow me to do so as well as not distorting the picture when the popup loads

 

 

Thank you, :thumbsup:

Posted
Hi Everyone ,

 

I'm looking for a contribution that will allow me to upload multiple pictures for a product..

 

example: a pair of jeans... I'd like to be able to showcase mulitple shots of the jeans, front, back, zipper...

 

Is there a contribution that will allow me to do so as well as not distorting the picture when the popup loads

Thank you, :thumbsup:

 

I've used this in the past: -

 

http://www.oscommerce.com/community/contributions,1289

Posted
How do you find it? Do you have a live sample...

 

here's a look at my store. Can you tell me if it will work well ?

Thanks,

 

www.UrbanRepublik.com

Posted
How do you find it? Do you have a live sample...

 

here's a look at my store. Can you tell me if it will work well ?

Thanks,

 

I found it by searching the contributions section for "Extra Images"

 

Your store uses osC, so it'll work...whether it works well is down to you, and what you do with it!

 

I don't have a live sample, I installed it for a client and he hasn't actually used it yet - sorry! But it does work :)

Posted
I found it by searching the contributions section for "Extra Images"

 

Your store uses osC, so it'll work...whether it works well is down to you, and what you do with it!

 

I don't have a live sample, I installed it for a client and he hasn't actually used it yet - sorry! But it does work :)

 

Hey , thanks for the quick reply,

 

I tried installing it but run into a problem , The install file asks the following...

 

/catalog/product_info.php
Find :
<td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td>
  </tr>
<?php
} else {

After Add :
  if (DISPLAY_EXTRA_IMAGES == 'true'){
 if ($product_check['total'] >= 1) {
   include (DIR_WS_INCLUDES . 'products_extra_images.php');
 }
}

 

I'm not able to find this code in that file as this file was pre designed , any ideas on how i can correct this so its able to recognize the additional pictures added ?

 

 

 

Thanks

Posted
Hey , thanks for the quick reply,

 

I tried installing it but run into a problem , The install file asks the following...

 

/catalog/product_info.php
Find :
<td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td>
  </tr>
<?php
} else {

After Add :
  if (DISPLAY_EXTRA_IMAGES == 'true'){
 if ($product_check['total'] >= 1) {
   include (DIR_WS_INCLUDES . 'products_extra_images.php');
 }
}

 

I'm not able to find this code in that file as this file was pre designed , any ideas on how i can correct this so its able to recognize the additional pictures added ?

Thanks

 

Hmm, I don't think you've downloaded the same contribution as me, but that's OK, it's probably been updated since I downloaded it. But that doesn't really matter.

 

The code for displaying the extra images can pretty much go anywhere, as long as it's between php tags. Mine is heavily modified, but try looking for the part of the file which displays the options (attributes), and add it after that.

 

If you want, post your product_info.php file here (if it isn't too long), that might make it easier to help.

Posted

I just had a very quick look, and it seems this contribution changed after version 1.4.

 

The version I used was the one that says "extra_images_14" (6th July 2003) plus the two fixes immediately above it.

 

But I'm sure the later versions work just as well, and are probably better. It looks easier to install for a start!

Posted

I installed this contribution and when I try to run the extra images in the admin section, I get this error:

 

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 1

 

I am using MySQL 4.1.8-standard

Posted
I installed this contribution and when I try to run the extra images in the admin section, I get this error:

 

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 1

 

I am using MySQL 4.1.8-standard

 

edit /includes/classes/split_page_results.php and find (line about 66):

$this->sql_query .= " limit " . $offset . ", " . $this->number_of_rows_per_page;

insert before it:

if($offset <0 ) $offset = 0;

do the same in:

admin//includes/classes/split_page_results.php

(about line 38)

Posted

I found that code in the /includes/classes/split_page_results.php file

but I did not find it in the admin/includes/classes/split_page_results.php file

 

I did find this code on line 38 though

 

$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;

 

Should I put it before that one?

Posted

I put that code in the admin//includes/classes/split_page_results.php just to see if it worked and got this error:

 

Parse error: parse error, unexpected $ in /home/usr128161/public_html/original/product_info.php on line 258

Posted

I took this fix directly from the bug report on this error - see here.

 

This issue is also fixed in the latest update 051113 - see the downloads section, although I'm not sure if it's done the same way, I patched mine before the update was released.

 

My /includes/classes/split_page_results.php looks like this: -

 

<?php
/*
 $Id: split_page_results.php,v 1.15 2003/06/09 22:35:34 hpdl Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 class splitPageResults {
var $sql_query, $number_of_rows, $current_page_number, $number_of_pages, $number_of_rows_per_page, $page_name;

/* class constructor */
function splitPageResults($query, $max_rows, $count_key = '*', $page_holder = 'page') {
  global $HTTP_GET_VARS, $HTTP_POST_VARS;

  $this->sql_query = $query;
  $this->page_name = $page_holder;

  if (isset($HTTP_GET_VARS[$page_holder])) {
	$page = $HTTP_GET_VARS[$page_holder];
  } elseif (isset($HTTP_POST_VARS[$page_holder])) {
	$page = $HTTP_POST_VARS[$page_holder];
  } else {
	$page = '';
  }

  if (empty($page) || !is_numeric($page)) $page = 1;
  $this->current_page_number = $page;

  $this->number_of_rows_per_page = $max_rows;

  $pos_to = strlen($this->sql_query);
  $pos_from = strpos($this->sql_query, ' from', 0);

  $pos_group_by = strpos($this->sql_query, ' group by', $pos_from);
  if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by;

  $pos_having = strpos($this->sql_query, ' having', $pos_from);
  if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having;

  $pos_order_by = strpos($this->sql_query, ' order by', $pos_from);
  if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by;

  if (strpos($this->sql_query, 'distinct') || strpos($this->sql_query, 'group by')) {
	$count_string = 'distinct ' . tep_db_input($count_key);
  } else {
	$count_string = tep_db_input($count_key);
  }

  $count_query = tep_db_query("select count(" . $count_string . ") as total " . substr($this->sql_query, $pos_from, ($pos_to - $pos_from)));
  $count = tep_db_fetch_array($count_query);

  $this->number_of_rows = $count['total'];

  $this->number_of_pages = ceil($this->number_of_rows / $this->number_of_rows_per_page);

  if ($this->current_page_number > $this->number_of_pages) {
	$this->current_page_number = $this->number_of_pages;
  }

  if($offset <0 ) $offset = 0;

  $offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1));

  $this->sql_query .= " limit " . $offset . ", " . $this->number_of_rows_per_page;
}

/* class functions */

// display split-page-number-links
function display_links($max_page_links, $parameters = '') {
  global $PHP_SELF, $request_type;

  $display_links_string = '';

  $class = 'class="pageResults"';

  if (tep_not_null($parameters) && (substr($parameters, -1) != '&')) $parameters .= '&';

// previous button - not displayed on first page
  if ($this->current_page_number > 1) $display_links_string .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . ($this->current_page_number - 1), $request_type) . '" class="pageResults" title=" ' . PREVNEXT_TITLE_PREVIOUS_PAGE . ' "><u>' . PREVNEXT_BUTTON_PREV . '</u></a>??';

// check if number_of_pages > $max_page_links
  $cur_window_num = intval($this->current_page_number / $max_page_links);
  if ($this->current_page_number % $max_page_links) $cur_window_num++;

  $max_window_num = intval($this->number_of_pages / $max_page_links);
  if ($this->number_of_pages % $max_page_links) $max_window_num++;

// previous window of pages
  if ($cur_window_num > 1) $display_links_string .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . (($cur_window_num - 1) * $max_page_links), $request_type) . '" class="pageResults" title=" ' . sprintf(PREVNEXT_TITLE_PREV_SET_OF_NO_PAGE, $max_page_links) . ' ">...</a>';

// page nn button
  for ($jump_to_page = 1 + (($cur_window_num - 1) * $max_page_links); ($jump_to_page <= ($cur_window_num * $max_page_links)) && ($jump_to_page <= $this->number_of_pages); $jump_to_page++) {
	if ($jump_to_page == $this->current_page_number) {
	  $display_links_string .= '?<b>' . $jump_to_page . '</b>?';
	} else {
	  $display_links_string .= '?<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . $jump_to_page, $request_type) . '" class="pageResults" title=" ' . sprintf(PREVNEXT_TITLE_PAGE_NO, $jump_to_page) . ' "><u>' . $jump_to_page . '</u></a>?';
	}
  }

// next window of pages
  if ($cur_window_num < $max_window_num) $display_links_string .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . (($cur_window_num) * $max_page_links + 1), $request_type) . '" class="pageResults" title=" ' . sprintf(PREVNEXT_TITLE_NEXT_SET_OF_NO_PAGE, $max_page_links) . ' ">...</a>?';

// next button
  if (($this->current_page_number < $this->number_of_pages) && ($this->number_of_pages != 1)) $display_links_string .= '?<a href="' . tep_href_link(basename($PHP_SELF), $parameters . 'page=' . ($this->current_page_number + 1), $request_type) . '" class="pageResults" title=" ' . PREVNEXT_TITLE_NEXT_PAGE . ' "><u>' . PREVNEXT_BUTTON_NEXT . '</u></a>?';

  return $display_links_string;
}

// display number of total products found
function display_count($text_output) {
  $to_num = ($this->number_of_rows_per_page * $this->current_page_number);
  if ($to_num > $this->number_of_rows) $to_num = $this->number_of_rows;

  $from_num = ($this->number_of_rows_per_page * ($this->current_page_number - 1));

  if ($to_num == 0) {
	$from_num = 0;
  } else {
	$from_num++;
  }

  return sprintf($text_output, $from_num, $to_num, $this->number_of_rows);
}
 }
?>

 

and my admin/includes/classes/split_page_results.php looks like this: -

 

<?php
/*
 $Id: split_page_results.php,v 1.13 2003/05/05 17:56:50 dgw_ Exp $

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

 Copyright (c) 2002 osCommerce

 Released under the GNU General Public License
*/

 class splitPageResults {
function splitPageResults(&$current_page_number, $max_rows_per_page, &$sql_query, &$query_num_rows) {
  if (empty($current_page_number)) $current_page_number = 1;

  $pos_to = strlen($sql_query);
  $pos_from = strpos($sql_query, ' from', 0);

  $pos_group_by = strpos($sql_query, ' group by', $pos_from);
  if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by;

  $pos_having = strpos($sql_query, ' having', $pos_from);
  if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having;

  $pos_order_by = strpos($sql_query, ' order by', $pos_from);
  if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by;

  $reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from)));
  $reviews_count = tep_db_fetch_array($reviews_count_query);
  $query_num_rows = $reviews_count['total'];

  $num_pages = ceil($query_num_rows / $max_rows_per_page);
  if ($current_page_number > $num_pages) {
	$current_page_number = $num_pages;
  }
  $offset = ($max_rows_per_page * ($current_page_number - 1));

  if($offset <0 ) $offset = 0;

  $sql_query .= " limit " . $offset . ", " . $max_rows_per_page;
}

function display_links($query_numrows, $max_rows_per_page, $max_page_links, $current_page_number, $parameters = '', $page_name = 'page') {
  global $PHP_SELF;

  if ( tep_not_null($parameters) && (substr($parameters, -1) != '&') ) $parameters .= '&';

// calculate number of pages needing links
  $num_pages = ceil($query_numrows / $max_rows_per_page);

  $pages_array = array();
  for ($i=1; $i<=$num_pages; $i++) {
	$pages_array[] = array('id' => $i, 'text' => $i);
  }

  if ($num_pages > 1) {
	$display_links = tep_draw_form('pages', basename($PHP_SELF), '', 'get');

	if ($current_page_number > 1) {
	  $display_links .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number - 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_PREV . '</a>??';
	} else {
	  $display_links .= PREVNEXT_BUTTON_PREV . '??';
	}

	$display_links .= sprintf(TEXT_RESULT_PAGE, tep_draw_pull_down_menu($page_name, $pages_array, $current_page_number, 'onChange="this.form.submit();"'), $num_pages);

	if (($current_page_number < $num_pages) && ($num_pages != 1)) {
	  $display_links .= '??<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number + 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_NEXT . '</a>';
	} else {
	  $display_links .= '??' . PREVNEXT_BUTTON_NEXT;
	}

	if ($parameters != '') {
	  if (substr($parameters, -1) == '&') $parameters = substr($parameters, 0, -1);
	  $pairs = explode('&', $parameters);
	  while (list(, $pair) = each($pairs)) {
		list($key,$value) = explode('=', $pair);
		$display_links .= tep_draw_hidden_field(rawurldecode($key), rawurldecode($value));
	  }
	}

	if (SID) $display_links .= tep_draw_hidden_field(tep_session_name(), tep_session_id());

	$display_links .= '</form>';
  } else {
	$display_links = sprintf(TEXT_RESULT_PAGE, $num_pages, $num_pages);
  }

  return $display_links;
}

function display_count($query_numrows, $max_rows_per_page, $current_page_number, $text_output) {
  $to_num = ($max_rows_per_page * $current_page_number);
  if ($to_num > $query_numrows) $to_num = $query_numrows;
  $from_num = ($max_rows_per_page * ($current_page_number - 1));
  if ($to_num == 0) {
	$from_num = 0;
  } else {
	$from_num++;
  }

  return sprintf($text_output, $from_num, $to_num, $query_numrows);
}
 }
?>

 

As always - back up!

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...