Zen Cart Logo
Forums / All Other Contributions/Addons / AJAX IMAGE Swapper support thread

AJAX IMAGE Swapper support thread

Views: 172,482

Results 301 to 320 of 786
28 Jul 2008, 03:46
#301
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

AJAX IMAGE Swapper support thread

greydawgjr:

That's awesome! I'd like details on how you did that if you can! :clap:

Greydawgjr,

I edited the file includes/modules/pages/product_info/jscript_2_imageveiwer

Here is the file.

/* ImageViewer Class, a mootools based class made by Jaycode ([email protected])
** it's all object oriented, baby!
** 15 Apr 2008
*/

var ImageViewer = new Class({

arrowLeft_image_url : 'images/web_images/arrow_left.gif',
arrowRight_image_url : 'images/web_images/arrow_right.gif',

options: {
	small_container_width : 75,
	small_container_height : 75,
	scroll_size : 3 //How many images to scroll when left or right arrow pressed
},

initialize: function(medium_image_element, navigator_element, image_array, displayed_image_num, options) {
	this.medium_image_element = $(medium_image_element);
	this.navigator_element = $(navigator_element);
	this.num_small_images_displayed = displayed_image_num; //Number of small images displayed 
	this.total_image = image_array.length; //The total of images returned from server
	this.leftmost_image_index = 0; //Leftmost index of displayed image
	this.rightmost_image_index = displayed_image_num - 1; //Rightmost index of displayed image
	this.image_array = image_array;
	
	if (this.total_image <= this.num_small_images_displayed) {
		this.num_small_images_displayed = this.total_image;
		this.rightmost_image_index = this.total_image - 1;
	}
	
	this.set_previous_arrow();
	this.init_small_images();
	this.set_next_arrow();
	if (this.options.initialize) this.options.initialize.call(this);
},

set_small_images: function() { // Display all the small images
	for (var i=0; i < this.image_array.length; i++) {
		this.counter = i;
		var a_image = new Element('a', {
			'id' : 'image_small_link-' + i,
			'class' : 'back image_small',
			'styles' : {
				'height' : this.options.small_container_height + 'px',
				'width' : this.options.small_container_width + 'px'
			},
			'events' : {
				'click' : function(i) {
					//var id = this.getProperty('id').replace('image_small_link-','');
					this.set_medium_image(i);
					return false;
				}.bind(this, i)
			},
			'rel' : 'lightbox[gallery]',
			'title' : this.image_array\[i]['image_title']
		});
		var img_image = new Element('img', {
			'width' : this.image_array\[i]['image_width_small'],
			'height' : this.image_array\[i]['image_height_small'],
			'src' : this.image_array\[i]['image_path_small']
		});
		
		img_image.injectInside(a_image);
		a_image.injectInside(this.navigator_element);
	}
},

set_medium_image: function(index) {
	var a_image = new Element('a', {
		'id' : 'image_medium',
		'class' : 'MagicZoom',
		'href' : this.image_array[index]['image_path_large'],
		'rel' : 'lightbox[gallery]',
		'title' : this.image_array[index]['image_title']
	});
	var img_image = new Element('img', {
		'width' : this.image_array[index]['image_width_medium'],
		'height' : this.image_array[index]['image_height_medium'],
		'src' : this.image_array[index]['image_path_medium'],
		'alt' : this.image_array[index]['image_title'],
		'title' : this.image_array[index]['image_title']
	});
	
	this.medium_image_element.empty();
	
	img_image.injectInside(a_image);
	a_image.injectInside(this.medium_image_element);
	MagicZoom_findZooms();
	Lightbox.init();
},

set_displayed_small_images: function() { // Set which images to set visible or not
	for (var i = 0; i < this.image_array.length; i++) {
		if (i < this.leftmost_image_index || i > this.rightmost_image_index) {
			$('image_small_link-' + i).setStyle('display', 'none');
		}
		else {
			$('image_small_link-' + i).setStyle('display', 'block');
		}
		
	}
},

init_small_images: function() {
	if (this.total_image <= 1) { //No need to display small thumbnails if only one or less image found
		this.set_medium_image(0);
	}
	else {
		this.set_small_images();
		this.set_displayed_small_images();
		this.set_medium_image(0);
	}
},

set_previous_arrow: function(){
	var a_left = new Element('a', {
		'class' : 'back',
		'id' : 'arrow_left',
		'events' : {
			'click' : function() {
				if (this.leftmost_image_index > 0) {
					for (var i = 0; i < this.options.scroll_size && this.leftmost_image_index > 0; i++) {
						this.leftmost_image_index--;
						this.rightmost_image_index--;
					}
					this.set_displayed_small_images();
					$('img_arrow_right').setStyle('display', 'block');
				}
				if (this.leftmost_image_index == 0) {
					$('img_arrow_left').setStyle('display', 'none');
					$('span_spacer').setStyle('display', 'inline');
				}
			}.bind(this)
		}
	});
	
	var img = new Element('img', {
		'src' : this.arrowLeft_image_url,
		'id' : 'img_arrow_left',
		'styles' : {'display' : 'none'}
	});
	
	new Element('span', {'id' : 'span_spacer'}).setText('\xa0').injectInside(a_left);
	img.injectInside(a_left);
	
	a_left.injectInside(this.navigator_element);
},

set_next_arrow: function(){
	var a_right = new Element('a', {
		'class' : 'back',
		'id' : 'arrow_right',
		'events' : {
			'click' : function() {
				if (this.rightmost_image_index < this.total_image - 1) {
					for (var i = 0; i < this.options.scroll_size && this.rightmost_image_index < this.total_image - 1; i++) {
						this.rightmost_image_index++;
						this.leftmost_image_index++;
					}
					this.set_displayed_small_images();
					$('img_arrow_left').setStyle('display', 'block');
					$('span_spacer').setStyle('display', 'none');
				}
				if (this.rightmost_image_index == this.total_image - 1) {
					$('img_arrow_right').setStyle('display', 'none');
				}
			}.bind(this)
		}
	});
	
	if (this.num_small_images_displayed >= this.total_image) {
		var display_mode = 'none';
	}
	else {
		var display_mode = 'block';
	}
	var img = new Element('img', {
		'src' : this.arrowRight_image_url,
		'id' : 'img_arrow_right',
		'styles' : {
			'display' : display_mode
		}
	});
	
	img.injectInside(a_right);
	
	a_right.injectInside(this.navigator_element);
	
}

});

ImageViewer.implement(new Options, new Events);

and uploaded the files in this zip.

28 Jul 2008, 03:51
#302
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

monkeypeach:

Sorry to sound stupid, but in the readme file, it states in the installation section:

  1. Read (& follow) point I.3 above, copy & paste everything inside the folders
    into your website's root folder.

Do I simply copy the whole AJAX_image_swapper_v3.1.3 folder in to my root folder, or do I need to place each individual file in the correct place myself?

Thanks.

You need to place each individual file yourself.

28 Jul 2008, 14:25
#303
monkeypeach avatar

monkeypeach

New Zenner

Join Date:
Jul 2008
Posts:
44
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

dscott1966:

You need to place each individual file yourself.

Thanks!:smile:

28 Jul 2008, 17:09
#304
monkeypeach avatar

monkeypeach

New Zenner

Join Date:
Jul 2008
Posts:
44
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

Just about there, except I'm not sure where the "fual slimbox v0.1.5 documentation" should go?

28 Jul 2008, 19:28
#305
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

monkeypeach:

Just about there, except I'm not sure where the "fual slimbox v0.1.5 documentation" should go?

Thats nothing that just documentation on how to install fual slimbox and how to use it. If this is a fresh install then you do not need to do anything in that file. If you have installed fual slimbox before you installed ajax image swapper then you need to install the zen_lightbox patch that is included in that file.

02 Aug 2008, 21:48
#306
monkeypeach avatar

monkeypeach

New Zenner

Join Date:
Jul 2008
Posts:
44
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

greydawgjr:

I think you need all of this:

UNINSTALLATION
SET @t4=0;
SELECT (@t4:=configuration_group_id) as t4
FROM configuration_group
WHERE configuration_group_title= 'Fual Slimbox';
DELETE FROM configuration WHERE configuration_group_id = @t4;
DELETE FROM configuration_group WHERE configuration_group_id = @t4;

DROP TABLE products_attributes_images;

SET @t4=0;
SELECT (@t4:=configuration_group_id) as t4
FROM configuration_group
WHERE configuration_group_title= 'AJAX Image Swapper';
DELETE FROM configuration WHERE configuration_group_id = @t4;
DELETE FROM configuration_group WHERE configuration_group_id = @t4;

> 
> Those double dashes are commented out lines, I uncommented them in the code above...

Do I just copy and paste the above into "install sql patches" to delete this? I don't quite understand your double dashes comment?.:no:
03 Aug 2008, 00:01
#307
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

monkeypeach:

Do I just copy and paste the above into "install sql patches" to delete this? I don't quite understand your double dashes comment?.:no:

What are you trying to do delete it?

03 Aug 2008, 00:02
#308
monkeypeach avatar

monkeypeach

New Zenner

Join Date:
Jul 2008
Posts:
44
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

Realised I don't really need this contribution, so I'd like to uninstall it.

03 Aug 2008, 02:41
#309
greydawgjr avatar

greydawgjr

New Zenner

Join Date:
May 2008
Posts:
65
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

monkeypeach:

Realised I don't really need this contribution, so I'd like to uninstall it.

Yes, just copy and paste that code. The double dashes was referring to the original code where it is commented out.

03 Aug 2008, 18:11
#310
monkeypeach avatar

monkeypeach

New Zenner

Join Date:
Jul 2008
Posts:
44
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

ok, tried it, but I get the following message:

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 'UNINSTALLATION SET @t4=0' at line 1
in:
[UNINSTALLATION SET @t4=0;]
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.

:(

04 Aug 2008, 05:49
#311
colour97 avatar

colour97

New Zenner

Join Date:
Jul 2008
Posts:
9
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

really need a hand. not working to me, trying 2 days and still cannot get any fruit.

  1. i should install this AIS correctly. following your read me text to correct tpl_product_info_display.php

  2. 1 product, i made 1 attribute : SIZE : S, M , L , please see my attached photo. when i go to catolog/ AIS manager, check NO attribute , i got 1 photo.
    but do not know how to use this photo.

if i check YES attribute, the box showed. : "there is no photo in this attribute",
but i already added a photo to SIZE: Small attribute.

how to do next?

please help.

04 Aug 2008, 10:58
#312
colour97 avatar

colour97

New Zenner

Join Date:
Jul 2008
Posts:
9
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

I also don't have UPLOAD IMAGE button.

please help

thank you.

04 Aug 2008, 19:05
#313
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

colour97:

really need a hand. not working to me, trying 2 days and still cannot get any fruit.

  1. i should install this AIS correctly. following your read me text to correct tpl_product_info_display.php

  2. 1 product, i made 1 attribute : SIZE : S, M , L , please see my attached photo. when i go to catolog/ AIS manager, check NO attribute , i got 1 photo.
    but do not know how to use this photo.

if i check YES attribute, the box showed. : "there is no photo in this attribute",
but i already added a photo to SIZE: Small attribute.

how to do next?

please help.

First the box that you use to upload the image was for an image swatch not for the main images used for ajax image swapper.

After you have created your attribute you need to go to catalog>ajax image swapper manager.

  1. Then you will see select category, Select your category

  2. After you selected your category, You want to go to the next box and select the product name that you want the attributes for.

  3. Select use attributes radio button to yes

  4. Set the product image for option name ( in your case it would be size)

  5. Then option value you should see s , m, l ( That would be the product or image you want to set that size for)

  6. Once you do all that you can go over to the image side browse for the image you have for lets say small, upload all the images for small.

And that should be it!!!!

04 Aug 2008, 22:56
#314
greydawgjr avatar

greydawgjr

New Zenner

Join Date:
May 2008
Posts:
65
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

monkeypeach:

ok, tried it, but I get the following message:

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 'UNINSTALLATION SET @t4=0' at line 1
in:
[UNINSTALLATION SET @t4=0;]
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.

:(

Hmm, can you try copying and pasting everything from SET down (in other words don't copy and paste UNINSTILLATION) in the above referenced code? I'm sure your sql is above 4.1 but you might want to double check that as well. If this doesn't work I can walk you through how to do it with phpmyadmin or similar.

10 Aug 2008, 10:12
#315
highroller avatar

highroller

New Zenner

Join Date:
May 2007
Posts:
23
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

dscott1966:

I fixed it to work with lightbox also.

Can be seen here using both: http://dealz-r-us.com/index.php?main_page=product_info&cPath=2_3&products_id=2

Hello, could you please help me with moving my attributes to the side of my product images like the way yours is. I hate the way I have to scroll down and scroll back up to see my images swap.

http://Muncheys.com/index.php?main_page=product_info&cPath=5&products_id=6

Can you share the code you used and where they should be placed?

Thank you

10 Aug 2008, 16:36
#316
ttrahan avatar

ttrahan

New Zenner

Join Date:
Aug 2008
Posts:
4
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

Hi, and thanks for working on this product for so long!

I am new to Zen-Cart, and I have been trying to get this working for a couple days now.

I believe I have hit absolutely every issue possilbe! :smile: and I have worked through most of them, from originally having a database witha prefix on it, to having misplaced files, to not having deployed all files, basically everything.

At this point, I am pretty sure I have almost everything correct, as through the admin panel, I am able to actually use the AIS control panel to add images to individual attributes and see that they are getting stored and retrieved to the database. (This was also an issue, as the first time through, the tables didn't get created and I didn't realize it).

So now, the final problem is that the product_info page doesn't seem to be engaging the AIS engine to perform the rendering.

In my file structure i have

StoreRoot\includes\templates\SophyBlue\templates
tpl_modules_ajax_image_swapper_attr.php
tpl_modules_ajax_image_viewer.php
tpl_product_info_display.php <-- I suspect an issue here, i have tried placing it in
StoreRoot and in StoreRoot\includes to no avail.

I have set up radio button attributes on a product, and assigned 1 image to the small image to each option. I have Apache 2.2.8, PHP 5.2.6, and GD is enabled.

When I go to view a product, the normal image is displayed an nothing happens when I click to change an attribute...

Any help would be greatly appreciated!

10 Aug 2008, 21:19
#317
ttrahan avatar

ttrahan

New Zenner

Join Date:
Aug 2008
Posts:
4
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

I finally figured it out. The tpl_product_info_display.php that is currently in the AJAX_image_swapper_v3.1.3.zip does not have the lines

require($template->get_template_dir('/tpl_modules_ajax_image_viewer.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_viewer.php');?>

and

require($template->get_template_dir('/tpl_modules_ajax_image_swapper_attr.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_swapper_attr.php'); ?>

actually in it. It has the default values...

11 Aug 2008, 03:19
#318
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

highroller:

Hello, could you please help me with moving my attributes to the side of my product images like the way yours is. I hate the way I have to scroll down and scroll back up to see my images swap.

http://Muncheys.com/index.php?main_page=product_info&cPath=5&products_id=6

Can you share the code you used and where they should be placed?

Thank you

Very easy to do in the file includes/template/your_template/templates/tpl_product _info _display and includes/template/your_template/css/stylesheet.css file you just have to move the corresponding information into DIV's and use the syles sheet to move and place them.

Here is my code for includes/template/your_template/templates/tpl_product _info _display

<div id="rightFloat">
  
  <!--bof Attributes Module -->
  <?php
  if ($pr_attr->fields['total'] > 0) {
?>
  <?php
/**
 * display the product atributes
 */
  require($template->get_template_dir('/tpl_modules_ajax_image_swapper_attr.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_swapper_attr.php'); ?>
  <?php
  }
?>
  <!--eof Attributes Module --></div>
  

move what you want inside that (div) <div id="rightFloat">.

Then add this to the end of your style sheet

#rightFloat {
	float:right;
	width:45%;
	}

and that should work for you.

11 Aug 2008, 05:13
#319
highroller avatar

highroller

New Zenner

Join Date:
May 2007
Posts:
23
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

Hello, thank for your help. I added the code you gave and it did move it but not by the side of the product image. Can you take a look and see if I added the code in the wrong place.

Thank you

<?php
/**
 * Page Template
 *
 * Loaded automatically by index.php?main_page=product_info.<br />
 * Displays details of a typical product
 *
 * @package templateSystem
 * @copyright Copyright 2003-2006 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: tpl_product_info_display.php 5369 2006-12-23 10:55:52Z drbyte $
 */
 //require(DIR_WS_MODULES . '/debug_blocks/product_info_prices.php');
?>
<div class="centerColumn" id="productGeneral">

<!--bof Form start-->
<?php echo zen_draw_form('cart_quantity', zen_href_link(zen_get_info_page($_GET['products_id']), zen_get_all_get_params(array('action')) . 'action=add_product'), 'post', 'enctype="multipart/form-data"') . "\n"; ?>
<!--eof Form start-->

<?php if ($messageStack->size('product_info') > 0) echo $messageStack->output('product_info'); ?>

<!--bof Category Icon -->
<?php if ($module_show_categories != 0) {?>
<?php
/**
 * display the category icons
 */
require($template->get_template_dir('/tpl_modules_category_icon_display.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_category_icon_display.php'); ?>
<?php } ?>
<!--eof Category Icon -->

<!--bof Prev/Next top position -->
<?php if (PRODUCT_INFO_PREVIOUS_NEXT == 1 or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?>
<?php
/**
 * display the product previous/next helper
 */
require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_products_next_previous.php'); ?>
<?php } ?>
<!--eof Prev/Next top position-->

<!--bof Main Product Image -->
<?php
  if (zen_not_null($products_image)) {
  ?>
<?php
/**
 * display the main product image
 */
   require($template->get_template_dir('/tpl_modules_ajax_image_viewer.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_viewer.php');?>
<?php
  }
?>
<!--eof Main Product Image-->

<!--bof Product Name-->
<h1 id="productName" class="productGeneral"><?php echo $products_name; ?></h1>
<!--eof Product Name-->

<!--bof Product Price block -->
<h2 id="productPrices" class="productGeneral">
<?php
// base price
  if ($show_onetime_charges_description == 'true') {
    $one_time = '<span >' . TEXT_ONETIME_CHARGE_SYMBOL . TEXT_ONETIME_CHARGE_DESCRIPTION . '</span><br />';
  } else {
    $one_time = '';
  }
  echo $one_time . ((zen_has_product_attributes_values((int)$_GET['products_id']) and $flag_show_product_info_starting_at == 1) ? TEXT_BASE_PRICE : '') . zen_get_products_display_price((int)$_GET['products_id']);
?></h2>
<!--eof Product Price block -->

<!--bof free ship icon  -->
<?php if(zen_get_product_is_always_free_shipping($products_id_current) && $flag_show_product_info_free_shipping) { ?>
<div id="freeShippingIcon"><?php echo TEXT_PRODUCT_FREE_SHIPPING_ICON; ?></div>
<?php } ?>
<!--eof free ship icon  -->

 <!--bof Product description -->
<?php if ($products_description != '') { ?>
<div id="productDescription" class="productGeneral biggerText"><?php echo stripslashes($products_description); ?></div>
<?php } ?>
<!--eof Product description -->
<br class="clearBoth" />

<!--bof Add to Cart Box -->
<?php
if (CUSTOMERS_APPROVAL == 3 and TEXT_LOGIN_FOR_PRICE_BUTTON_REPLACE_SHOWROOM == '') {
  // do nothing
} else {
?>
            <div id="rightFloat">
  
  <!--bof Attributes Module -->
  <?php
  if ($pr_attr->fields['total'] > 0) {
?>
  <?php
/**
 * display the product atributes
 */
  require($template->get_template_dir('/tpl_modules_ajax_image_swapper_attr.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_swapper_attr.php'); ?>
  <?php
  }
?>
  <!--eof Attributes Module --></div>
            <?php
    $display_qty = (($flag_show_product_info_in_cart_qty == 1 and $_SESSION['cart']->in_cart($_GET['products_id'])) ? '<p>' . PRODUCTS_ORDER_QTY_TEXT_IN_CART . $_SESSION['cart']->get_quantity($_GET['products_id']) . '</p>' : '');
            if ($products_qty_box_status == 0 or $products_quantity_order_max== 1) {
              // hide the quantity box and default to 1
              $the_button = '<input type="hidden" name="cart_quantity" value="1" />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
            } else {
              // show the quantity box
    $the_button = PRODUCTS_ORDER_QTY_TEXT . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($_GET['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_get_products_quantity_min_units_display((int)$_GET['products_id']) . '<br />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
            }
    $display_button = zen_get_buy_now_button($_GET['products_id'], $the_button);
  ?>
  <?php if ($display_qty != '' or $display_button != '') { ?>
    <div id="cartAdd">
    <?php
      echo $display_qty;
      echo $display_button;
            ?>
  </div>
  <?php } // display qty and button ?>
<?php } // CUSTOMERS_APPROVAL == 3 ?>
<!--eof Add to Cart Box-->

<!--bof Product details list  -->
<?php if ( (($flag_show_product_info_model == 1 and $products_model != '') or ($flag_show_product_info_weight == 1 and $products_weight !=0) or ($flag_show_product_info_quantity == 1) or ($flag_show_product_info_manufacturer == 1 and !empty($manufacturers_name))) ) { ?>
<ul id="productDetailsList" class="floatingBox back">
  <?php echo (($flag_show_product_info_model == 1 and $products_model !='') ? '<li>' . TEXT_PRODUCT_MODEL . $products_model . '</li>' : '') . "\n"; ?>
  <?php echo (($flag_show_product_info_weight == 1 and $products_weight !=0) ? '<li>' . TEXT_PRODUCT_WEIGHT .  $products_weight . TEXT_PRODUCT_WEIGHT_UNIT . '</li>'  : '') . "\n"; ?>
  <?php echo (($flag_show_product_info_quantity == 1) ? '<li>' . $products_quantity . TEXT_PRODUCT_QUANTITY . '</li>'  : '') . "\n"; ?>
  <?php echo (($flag_show_product_info_manufacturer == 1 and !empty($manufacturers_name)) ? '<li>' . TEXT_PRODUCT_MANUFACTURER . $manufacturers_name . '</li>' : '') . "\n"; ?>
</ul>
<br class="clearBoth" />
<?php
  }
?>
<!--eof Product details list -->

<!--bof Attributes Module -->
<?php
  if ($pr_attr->fields['total'] > 0) {
?>
<?php
  }
?>
<!--eof Attributes Module -->

<!--bof Quantity Discounts table -->
<?php
  if ($products_discount_type != 0) { ?>
<?php
/**
 * display the products quantity discount
 */
 require($template->get_template_dir('/tpl_modules_products_quantity_discounts.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_products_quantity_discounts.php'); ?>
<?php
  }
?>
<!--eof Quantity Discounts table -->

<!--bof Prev/Next bottom position -->
<?php if (PRODUCT_INFO_PREVIOUS_NEXT == 2 or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?>
<?php
/**
 * display the product previous/next helper
 */
 require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_products_next_previous.php'); ?>
<?php } ?>
<!--eof Prev/Next bottom position -->

<!--bof Tell a Friend button -->
<?php
  if ($flag_show_product_info_tell_a_friend == 1) { ?>
<div id="productTellFriendLink" class="buttonRow forward"><?php echo ($flag_show_product_info_tell_a_friend == 1 ? '<a href="' . zen_href_link(FILENAME_TELL_A_FRIEND, 'products_id=' . $_GET['products_id']) . '">' . zen_image_button(BUTTON_IMAGE_TELLAFRIEND, BUTTON_TELLAFRIEND_ALT) . '</a>' : ''); ?></div>
<?php
  }
?>
<!--eof Tell a Friend button -->

<!--bof Reviews button and count-->
<?php
  if ($flag_show_product_info_reviews == 1) {
    // if more than 0 reviews, then show reviews button; otherwise, show the "write review" button
    if ($reviews->fields['count'] > 0 ) { ?>
<div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' . zen_href_link(FILENAME_PRODUCT_REVIEWS, zen_get_all_get_params()) . '">' . zen_image_button(BUTTON_IMAGE_REVIEWS, BUTTON_REVIEWS_ALT) . '</a>'; ?></div>
<br class="clearBoth" />
<p class="reviewCount"><?php echo ($flag_show_product_info_reviews_count == 1 ? TEXT_CURRENT_REVIEWS . ' ' . $reviews->fields['count'] : ''); ?></p>
<?php } else { ?>
<div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' . zen_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, zen_get_all_get_params(array())) . '">' . zen_image_button(BUTTON_IMAGE_WRITE_REVIEW, BUTTON_WRITE_REVIEW_ALT) . '</a>'; ?></div>
<br class="clearBoth" />
<?php
  }
}
?>
<!--eof Reviews button and count -->


<!--bof Product date added/available-->
<?php
  if ($products_date_available > date('Y-m-d H:i:s')) {
    if ($flag_show_product_info_date_available == 1) {
?>
  <p id="productDateAvailable" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_AVAILABLE, zen_date_long($products_date_available)); ?></p>
<?php
    }
  } else {
    if ($flag_show_product_info_date_added == 1) {
?>
      <p id="productDateAdded" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_ADDED, zen_date_long($products_date_added)); ?></p>
<?php
    } // $flag_show_product_info_date_added
  }
?>
<!--eof Product date added/available -->

<!--bof Product URL -->
<?php
  if (zen_not_null($products_url)) {
    if ($flag_show_product_info_url == 1) {
?>
    <p id="productInfoLink" class="productGeneral centeredContent"><?php echo sprintf(TEXT_MORE_INFORMATION, zen_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($products_url), 'NONSSL', true, false)); ?></p>
<?php
    } // $flag_show_product_info_url
  }
?>
<!--eof Product URL -->

<!--bof also purchased products module-->
<?php require($template->get_template_dir('tpl_modules_also_purchased_products.php', DIR_WS_TEMPLATE, $current_page_base,'templates'). '/' . 'tpl_modules_also_purchased_products.php');?>
<!--eof also purchased products module-->

<!--bof Form close-->
</form>
<!--bof Form close-->
</div>
11 Aug 2008, 14:11
#320
dscott1966 avatar

dscott1966

Zen Follower

Join Date:
Apr 2005
Posts:
298
Plugin Contributions:
0

Re: AJAX IMAGE Swapper support thread

highroller:

Hello, thank for your help. I added the code you gave and it did move it but not by the side of the product image. Can you take a look and see if I added the code in the wrong place.

Thank you

<?php /** * Page Template * * Loaded automatically by index.php?main_page=product_info.<br /> * Displays details of a typical product * * @package templateSystem * @copyright Copyright 2003-2006 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 * @version $Id: tpl_product_info_display.php 5369 2006-12-23 10:55:52Z drbyte $ */ //require(DIR_WS_MODULES . '/debug_blocks/product_info_prices.php'); ?> <div class="centerColumn" id="productGeneral"> <!--bof Form start--> <?php echo zen_draw_form('cart_quantity', zen_href_link(zen_get_info_page($_GET['products_id']), zen_get_all_get_params(array('action')) . 'action=add_product'), 'post', 'enctype="multipart/form-data"') . "\n"; ?> <!--eof Form start--> <?php if ($messageStack->size('product_info') > 0) echo $messageStack->output('product_info'); ?> <!--bof Category Icon --> <?php if ($module_show_categories != 0) {?> <?php /** * display the category icons */ require($template->get_template_dir('/tpl_modules_category_icon_display.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_category_icon_display.php'); ?> <?php } ?> <!--eof Category Icon --> <!--bof Prev/Next top position --> <?php if (PRODUCT_INFO_PREVIOUS_NEXT == 1 or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?> <?php /** * display the product previous/next helper */ require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_products_next_previous.php'); ?> <?php } ?> <!--eof Prev/Next top position--> <!--bof Main Product Image --> <?php if (zen_not_null($products_image)) { ?> <?php /** * display the main product image */ require($template->get_template_dir('/tpl_modules_ajax_image_viewer.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_viewer.php');?> <?php } ?> <!--eof Main Product Image--> <!--bof Product Name--> <h1 id="productName" class="productGeneral"><?php echo $products_name; ?></h1> <!--eof Product Name--> <!--bof Product Price block --> <h2 id="productPrices" class="productGeneral"> <?php // base price if ($show_onetime_charges_description == 'true') { $one_time = '<span >' . TEXT_ONETIME_CHARGE_SYMBOL . TEXT_ONETIME_CHARGE_DESCRIPTION . '</span><br />'; } else { $one_time = ''; } echo $one_time . ((zen_has_product_attributes_values((int)$_GET['products_id']) and $flag_show_product_info_starting_at == 1) ? TEXT_BASE_PRICE : '') . zen_get_products_display_price((int)$_GET['products_id']); ?></h2> <!--eof Product Price block --> <!--bof free ship icon --> <?php if(zen_get_product_is_always_free_shipping($products_id_current) && $flag_show_product_info_free_shipping) { ?> <div id="freeShippingIcon"><?php echo TEXT_PRODUCT_FREE_SHIPPING_ICON; ?></div> <?php } ?> <!--eof free ship icon --> <!--bof Product description --> <?php if ($products_description != '') { ?> <div id="productDescription" class="productGeneral biggerText"><?php echo stripslashes($products_description); ?></div> <?php } ?> <!--eof Product description --> <br class="clearBoth" /> <!--bof Add to Cart Box --> <?php if (CUSTOMERS_APPROVAL == 3 and TEXT_LOGIN_FOR_PRICE_BUTTON_REPLACE_SHOWROOM == '') { // do nothing } else { ?>
        <div id="rightFloat">
<!--bof Attributes Module --> <?php if ($pr_attr->fields['total'] > 0) { ?> <?php /** * display the product atributes */ require($template->get_template_dir('/tpl_modules_ajax_image_swapper_attr.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_swapper_attr.php'); ?> <?php } ?> <!--eof Attributes Module --></div>
        <?php
$display_qty = (($flag_show_product_info_in_cart_qty == 1 and $_SESSION['cart']->in_cart($_GET['products_id'])) ? '<p>' . PRODUCTS_ORDER_QTY_TEXT_IN_CART . $_SESSION['cart']->get_quantity($_GET['products_id']) . '</p>' : '');
        if ($products_qty_box_status == 0 or $products_quantity_order_max== 1) {
          // hide the quantity box and default to 1
          $the_button = '<input type="hidden" name="cart_quantity" value="1" />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
        } else {
          // show the quantity box
$the_button = PRODUCTS_ORDER_QTY_TEXT . '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($_GET['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_get_products_quantity_min_units_display((int)$_GET['products_id']) . '<br />' . zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CART, BUTTON_IN_CART_ALT);
        }
$display_button = zen_get_buy_now_button($_GET['products_id'], $the_button);

?>

<?php if ($display_qty != '' or $display_button != '') { ?>
<div id="cartAdd">
<?php
  echo $display_qty;
  echo $display_button;
        ?>
</div> <?php } // display qty and button ?> <?php } // CUSTOMERS_APPROVAL == 3 ?> <!--eof Add to Cart Box--> <!--bof Product details list --> <?php if ( (($flag_show_product_info_model == 1 and $products_model != '') or ($flag_show_product_info_weight == 1 and $products_weight !=0) or ($flag_show_product_info_quantity == 1) or ($flag_show_product_info_manufacturer == 1 and !empty($manufacturers_name))) ) { ?> <ul id="productDetailsList" class="floatingBox back"> <?php echo (($flag_show_product_info_model == 1 and $products_model !='') ? '<li>' . TEXT_PRODUCT_MODEL . $products_model . '</li>' : '') . "\n"; ?> <?php echo (($flag_show_product_info_weight == 1 and $products_weight !=0) ? '<li>' . TEXT_PRODUCT_WEIGHT . $products_weight . TEXT_PRODUCT_WEIGHT_UNIT . '</li>' : '') . "\n"; ?> <?php echo (($flag_show_product_info_quantity == 1) ? '<li>' . $products_quantity . TEXT_PRODUCT_QUANTITY . '</li>' : '') . "\n"; ?> <?php echo (($flag_show_product_info_manufacturer == 1 and !empty($manufacturers_name)) ? '<li>' . TEXT_PRODUCT_MANUFACTURER . $manufacturers_name . '</li>' : '') . "\n"; ?> </ul> <br class="clearBoth" /> <?php } ?> <!--eof Product details list --> <!--bof Attributes Module --> <?php if ($pr_attr->fields['total'] > 0) { ?> <?php } ?> <!--eof Attributes Module --> <!--bof Quantity Discounts table --> <?php if ($products_discount_type != 0) { ?> <?php /** * display the products quantity discount */ require($template->get_template_dir('/tpl_modules_products_quantity_discounts.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_products_quantity_discounts.php'); ?> <?php } ?> <!--eof Quantity Discounts table --> <!--bof Prev/Next bottom position --> <?php if (PRODUCT_INFO_PREVIOUS_NEXT == 2 or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?> <?php /** * display the product previous/next helper */ require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_products_next_previous.php'); ?> <?php } ?> <!--eof Prev/Next bottom position --> <!--bof Tell a Friend button --> <?php if ($flag_show_product_info_tell_a_friend == 1) { ?> <div id="productTellFriendLink" class="buttonRow forward"><?php echo ($flag_show_product_info_tell_a_friend == 1 ? '<a href="' . zen_href_link(FILENAME_TELL_A_FRIEND, 'products_id=' . $_GET['products_id']) . '">' . zen_image_button(BUTTON_IMAGE_TELLAFRIEND, BUTTON_TELLAFRIEND_ALT) . '</a>' : ''); ?></div> <?php } ?> <!--eof Tell a Friend button --> <!--bof Reviews button and count--> <?php if ($flag_show_product_info_reviews == 1) { // if more than 0 reviews, then show reviews button; otherwise, show the "write review" button if ($reviews->fields['count'] > 0 ) { ?> <div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' . zen_href_link(FILENAME_PRODUCT_REVIEWS, zen_get_all_get_params()) . '">' . zen_image_button(BUTTON_IMAGE_REVIEWS, BUTTON_REVIEWS_ALT) . '</a>'; ?></div> <br class="clearBoth" /> <p class="reviewCount"><?php echo ($flag_show_product_info_reviews_count == 1 ? TEXT_CURRENT_REVIEWS . ' ' . $reviews->fields['count'] : ''); ?></p> <?php } else { ?> <div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' . zen_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, zen_get_all_get_params(array())) . '">' . zen_image_button(BUTTON_IMAGE_WRITE_REVIEW, BUTTON_WRITE_REVIEW_ALT) . '</a>'; ?></div> <br class="clearBoth" /> <?php } } ?> <!--eof Reviews button and count --> <!--bof Product date added/available--> <?php if ($products_date_available > date('Y-m-d H:i:s')) { if ($flag_show_product_info_date_available == 1) { ?> <p id="productDateAvailable" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_AVAILABLE, zen_date_long($products_date_available)); ?></p> <?php } } else { if ($flag_show_product_info_date_added == 1) { ?> <p id="productDateAdded" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_ADDED, zen_date_long($products_date_added)); ?></p> <?php } // $flag_show_product_info_date_added } ?> <!--eof Product date added/available --> <!--bof Product URL --> <?php if (zen_not_null($products_url)) { if ($flag_show_product_info_url == 1) { ?>
<p id="productInfoLink" class="productGeneral centeredContent"><?php echo sprintf(TEXT_MORE_INFORMATION, zen_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($products_url), 'NONSSL', true, false)); ?></p>
<?php } // $flag_show_product_info_url } ?> <!--eof Product URL --> <!--bof also purchased products module--> <?php require($template->get_template_dir('tpl_modules_also_purchased_products.php', DIR_WS_TEMPLATE, $current_page_base,'templates'). '/' . 'tpl_modules_also_purchased_products.php');?> <!--eof also purchased products module--> <!--bof Form close--> </form> <!--bof Form close--> </div> ```

Try putting the div above this code like this:

 <div id="rightFloat">
  
  <!--bof Attributes Module -->
  <?php
  if ($pr_attr->fields['total'] > 0) {
?>
  <?php
/**
 * display the product atributes
 */
  require($template->get_template_dir('/tpl_modules_ajax_image_swapper_attr.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_swapper_attr.php'); ?>
  <?php
  }
?>
  <!--eof Attributes Module --></div>
            <?php

/**
 * display the main product image
 */
   require($template->get_template_dir('/tpl_modules_ajax_image_viewer.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_ajax_image_viewer.php');?>
<?php
  }
?>
<!--eof Main Product Image-->