Jump to content

How to have "Curtain fall" Cart Block ?


Recommended Posts

I had a look at the code and that site is not using a theme or modules available on the forums. It appears to be a completely custom theme made for that website. I'm not aware of any cart modules available on the forums that have a similar effect.

Link to comment
Share on other sites

First make backup of ajax-cart.js in blockcart module folder then try this.
Add this code to expand function at line 71

                    easing: 'easeOutBounce',


so it look like

                $('#cart_block #cart_block_list').slideDown({
                   duration: 600,
                   easing: 'easeOutBounce',
                   complete: function(){$(this).addClass('expanded').removeClass('collapsed');}
               });



The at the end of file replace

    $('#block_cart_collapse').click(function(){
           ajaxCart.collapse();
   });
   $('#block_cart_expand').click(function(){
           ajaxCart.expand();
   });


with

    $('#cart_block').hover(function(){
           ajaxCart.expand();
   },
  function(){
           ajaxCart.collapse();
   });


So code looks like this

//when document is loaded...
$(document).ready(function(){

   // expand/collapse management
   $('#cart_block').hover(function(){
           ajaxCart.expand();
   },
  function(){
           ajaxCart.collapse();
   });
   ajaxCart.overrideButtonsInThePage();
   ajaxCart.refresh();
});



Also you could comment out this part line 489

//ajaxCart.expand();


to disable expand on refresh.

Link to comment
Share on other sites

First make backup of ajax-cart.js in blockcart module folder then try this.
Add this code to expand function at line 71
                    easing: 'easeOutBounce',


so it look like

                $('#cart_block #cart_block_list').slideDown({
                   duration: 600,
                   easing: 'easeOutBounce',
                   complete: function(){$(this).addClass('expanded').removeClass('collapsed');}
               });



The at the end of file replace

    $('#block_cart_collapse').click(function(){
           ajaxCart.collapse();
   });
   $('#block_cart_expand').click(function(){
           ajaxCart.expand();
   });


with

    $('#cart_block').hover(function(){
           ajaxCart.expand();
   },
  function(){
           ajaxCart.collapse();
   });


So code looks like this

//when document is loaded...
$(document).ready(function(){

   // expand/collapse management
   $('#cart_block').hover(function(){
           ajaxCart.expand();
   },
  function(){
           ajaxCart.collapse();
   });
   ajaxCart.overrideButtonsInThePage();
   ajaxCart.refresh();
});



Also you could comment out this part line 489

//ajaxCart.expand();


to disable expand on refresh.


I tried and it worked. Thank you. But how to have the block above other components (like it's on the upper layer) when it expands ? It now pushs down all the blocks and the components.
Link to comment
Share on other sites

  • 1 month later...

Hi everyone,

Thanks a lot for the this. It works perfectly for my cart but I have a question to improve it.
When I load the page the cart is automatically expanded but it like it to be collapsed at the beginning and expanded when I roll over. Do you know how I can fix that?

Thanks a lot for your help

J.

Link to comment
Share on other sites

Maybe there is some error on category page connected with some other js files .

Try to temporally to turn on debug mode from config/config.inc.php

/* Debug only */
@ini_set('display_errors', 'on');


and if there are any errors, post them.

And tpl files can be attached on forum only in zip file.

Link to comment
Share on other sites

There is no error displayed when I activate the debug mode.

It might be because I changed some CSS classes in the blockcart.tpl file...

I'm trying to figure which one is causing all the trouble. Do you have any clue?

Thanks for your help and time Razaro :)

Link to comment
Share on other sites

In blockcart.tpl there is condition

{if !$order_page}
<script type="text/javascript" src="{$content_dir}modules/blockcart/ajax-cart.js">[removed]
{/if}



Maybe ajax is causing some problems on that page
Not sure why but see this post and that topic .

Link to comment
Share on other sites

Exactly!! I works on order.php page now!

Thank you very much for that.
I'm trying to add so new features to the cart and I'm a bit struggling with the ajax part so I might come back to this topic later on with a few questions if it's ok for you.

Thanks for that anyways

Cheers

J

Link to comment
Share on other sites

I'm already back...
Sorry about that.

In my cart I have 3 elements when it's collapsed
1. The number of products (.super-ajax_cart_quantity)
2. A sentence saying (product(s) in your cart) (.super-ajax_cart_product_txt)
3. Another sentence saying one thing if the cart is empty and another is the cart is filled up with at least 1 product (.lol-no-product and .lol).

I adapted my ajax-cart.js to make .lol-no-product disappear when a product is added and .lol appear at the same time but I can't understand why the .lol goes on top of the cart (in my .tpl he is positioned after the 2 first elements but when it appears it is positioned on top of those elements)...

Do you have any idea how I could fix that?

ajax-cart.js

updateCartEverywhere : function(jsonData) {
       $('.ajax_cart_total').text(jsonData.productTotal);
       $('.lol-montant').text(jsonData.productTotal);
       $('.ajax_cart_shipping_cost').text(jsonData.shippingCost);
       $('.cart_block_wrapping_cost').text(jsonData.wrappingCost);
       $('.ajax_block_cart_total').text(jsonData.total);
       if(jsonData.nbTotalProducts > 0)
       {
           $('.super-ajax_cart_no_product:visible').hide();
           $('.super-ajax_cart_quantity').text(jsonData.nbTotalProducts);

           $('.super-ajax_cart_quantity:hidden').fadeIn('slow');
           //$('.ajax_cart_total:hidden').fadeIn('slow');

           $('.lol-no-product').hide();
           $('.lol').fadeIn('slow');

           if(jsonData.nbTotalProducts > 1)
           {
               $('.super-ajax_cart_product_txt:visible').hide();
               $('.super-ajax_cart_product_txt_s:hidden').show();
           }
           else
           {
               $('.ajax_cart_product_txt:hidden').fadeIn('slow');
               $('.ajax_cart_product_txt_s:visible').fadeOut('slow');
           }
       }
       else
       {
           $('.super-ajax_cart_quantity:visible, .super-ajax_cart_product_txt_s:visible, .ajax_cart_product_txt:visible, .lol:visible, .super-ajax_cart_total:visible').fadeOut('slow', function(){
               $('.super-ajax_cart_no_product:hidden').fadeIn('slow');
           });
       }



blockcart.tpl

       {if $cart_qties > 0}
{$cart_qties}{/if}
{l s='products' mod='blockcart'} dans votre panier
{l s='product' mod='blockcart'} dans votre panier
pour un montant total de {if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false)}{else}{convertPrice price=$cart->getOrderTotal(true)}{/if}
       {if $cart_qties > 0}
       <!--{if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false)}{else}{convertPrice price=$cart->getOrderTotal(true)}{/if}-->{/if}
       {if $cart_qties == 0}
{$cart_qties}
{if $cart_qties == 0}{l s='(empty)' mod='blockcart'}{/if}
{l s='product' mod='blockcart'} dans votre panier
il va falloir y remédier    
       {/if}

Link to comment
Share on other sites

  • 10 months later...
  • 5 weeks later...
  • 1 month later...

Hi pouss1,
Your link is on a thread that has no tuto but it indicates the thread where we are now ! :-)
I don't understand why I have such a bug.
Maybe it is because I use the version 1.4.3 of Prestashop (the ajax-cart.js file is not exactly the same that in the code indicated in this thread)…
Thanks for having tried to help

Link to comment
Share on other sites

Yep, I have integrated the block cart in the header of a Prestashop v1.4.3 and it works greatly (http://goo.gl/TA4jc), looks at the code and the css :

in the blockcart.php, line 144 to 155, plug in the "header" value to allow this module to be hook in the header

public function install()
   {
       if
       (
           parent::install() == false
           OR $this->registerHook('rightColumn') == false
           OR $this->registerHook('header') == false
           OR Configuration::updateValue('PS_BLOCK_CART_AJAX', 1) == false
       )
           return false;
       return true;
   }



then...

in the blockcart.tpl, there is the

and the




the last
regroup two

1 -

2 -


The 1 is for the cart collapsed and the 2 for the cart expanded.

Look to the post of Razaro on this page for : how to get the ajax effect on mouse hover >> http://www.prestashop.com/forums/viewthread/54126/general_discussion/how_to_have_curtain_fall_cart_block_

After you need to put some css tips and it'll work :)
Link to comment
Share on other sites

  • 2 weeks later...

Hello all,

 

I found the source of my problem.

It was because this line in the CSS

 

#cart_block_list{
display:block;

 

au lieu de

 

#cart_block_list.expanded{
display:block;

 

Special thanks to pouss1 for his help !!

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 months later...
  • 4 weeks later...

Hi guys, I hope someone gets to read this since i've done everything this thread said and I broke my cart when I transplanted it to the top hook. before that, all the hovering effect worked like a charm. Im enclosing a screen of the site i've designed and that im building right now. I just need someone to point me in the right direction, tell me what to paste here if you need it.

 

Thanks in advance.

 

Screenshot: http://i.imgur.com/XpYAr.jpg

 

By the way here's the site > http://www.coolsupertest.com.ar/

Link to comment
Share on other sites

  • 6 months later...

Hi I'm trying to do this for my site but it doesn't work and i don't understand what's wrong.

Is there somebody can help me?

 

Here my ajax-cart.js:

<p>/*

* 2007-2012 PrestaShop

*

* NOTICE OF LICENSE

*

* This source file is subject to the Academic Free License (AFL 3.0)

* that is bundled with this package in the file LICENSE.txt.

* It is also available through the world-wide-web at this URL:

* http://opensource.org/licenses/afl-3.0.php

* If you did not receive a copy of the license and are unable to

* obtain it through the world-wide-web, please send an email

* to [email protected] so we can send you a copy immediately.

*

* DISCLAIMER

*

* Do not edit or add to this file if you wish to upgrade PrestaShop to newer

* versions in the future. If you wish to customize PrestaShop for your

* needs please refer to http://www.prestashop.com for more information.

*

* @author PrestaShop SA <[email protected]>

* @copyright 2007-2012 PrestaShop SA

* @version Release: $Revision: 15060 $

* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)

* International Registered Trademark & Property of PrestaShop SA

*/

 

 

//JS Object : update the cart by ajax actions

var ajaxCart = {

 

//override every button in the page in relation to the cart

overrideButtonsInThePage : function(){

//for every 'add' buttons...

$('.ajax_add_to_cart_button').unbind('click').click(function(){

var idProduct = $(this).attr('rel').replace('ajax_id_product_', '');

if ($(this).attr('disabled') != 'disabled')

ajaxCart.add(idProduct, null, false, this);

return false;

});

//for product page 'add' button...

$('body#product #add_to_cart input').unbind('click').click(function(){

ajaxCart.add( $('#product_page_product_id').val(), $('#idCombination').val(), true, null, $('#quantity_wanted').val(), null);

return false;

});

 

//for 'delete' buttons in the cart block...

$('#cart_block_list .ajax_cart_block_remove_link').unbind('click').click(function(){

// Customized product management

var customizationId = 0;

var productId = 0;

var productAttributeId = 0;

if ($($(this).parent().parent()).attr('name') == 'customization')

// Reverse two levels: a >> div >> li

var customizableProductDiv = $($(this).parent().parent()).find("div[id^=deleteCustomizableProduct_]");

else

var customizableProductDiv = $($(this).parent()).find("div[id^=deleteCustomizableProduct_]");

if (customizableProductDiv && $(customizableProductDiv).length)

{

$(customizableProductDiv).each(function(){

var ids = $(this).attr('id').split('_');

if (typeof(ids[1]) != 'undefined')

{

customizationId = parseInt(ids[1]);

productId = parseInt(ids[2]);

if (typeof(ids[3]) != 'undefined')

productAttributeId = parseInt(ids[3]);

return false;

}

});

}

 

// Common product management

if (!customizationId)

{

//retrieve idProduct and idCombination from the displayed product in the block cart

var firstCut = $(this).parent().parent().attr('id').replace('cart_block_product_', '');

firstCut = firstCut.replace('deleteCustomizableProduct_', '');

ids = firstCut.split('_');

productId = parseInt(ids[0]);

if (typeof(ids[1]) != 'undefined')

productAttributeId = parseInt(ids[1]);

}

 

// Removing product from the cart

ajaxCart.remove(productId, productAttributeId, customizationId);

return false;

});

},

 

// try to expand the cart

expand : function(){

$(['left_column', 'right_column']).each(function(id, parentId)

{

if ($('#'+parentId+' #cart_block #cart_block_list').hasClass('collapsed'))

{

$('#'+parentId+' #cart_block #cart_block_summary').slideUp(200, function(){

$(this).addClass('collapsed').removeClass('expanded');

$('#'+parentId+' #cart_block #cart_block_list').slideDown({

duration: 600,

easing: 'easeOutBounce',

complete: function(){$(this).addClass('expanded').removeClass('collapsed');}

});

});

// toogle the button expand/collapse button

$('#'+parentId+' #cart_block h4 span#block_cart_expand').fadeOut('slow', function(){

$('#'+parentId+' #cart_block h4 span#block_cart_collapse').fadeIn('fast');

});

 

// save the expand statut in the user cookie

$.ajax({

type: 'GET',

url: baseDir + 'modules/blockcart/blockcart-set-collapse.php',

async: true,

data: 'ajax_blockcart_display=expand' + '&rand=' + new Date().getTime()

});

}

});

},

// cart to fix display when using back and previous browsers buttons

refresh : function(){

//send the ajax request to the server

$.ajax({

type: 'GET',

url: baseDir + 'cart.php',

async: true,

cache: false,

dataType : "json",

data: 'ajax=true&token=' + static_token,

success: function(jsonData)

{

ajaxCart.updateCart(jsonData);

},

error: function(XMLHttpRequest, textStatus, errorThrown) {

// in front-office, do not display technical error

//alert("TECHNICAL ERROR: unable to refresh the cart.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);

}

});

},

 

// try to collapse the cart

collapse : function(){

 

if ($('#cart_block #cart_block_list').hasClass('expanded'))

{

$('#cart_block #cart_block_list').slideUp('slow', function(){

$(this).addClass('collapsed').removeClass('expanded');

$('#cart_block #cart_block_summary').slideDown(700, function(){

$(this).addClass('expanded').removeClass('collapsed');

});

});

$('#cart_block h4 span#block_cart_collapse').fadeOut('slow', function(){

$('#cart_block h4 span#block_cart_expand').fadeIn('fast');

});

 

// save the expand statut in the user cookie

$.ajax({

type: 'GET',

url: baseDir + 'modules/blockcart/blockcart-set-collapse.php',

async: true,

data: 'ajax_blockcart_display=collapse' + '&rand=' + new Date().getTime()

});

}

},

 

// Update the cart information

updateCartInformation : function (jsonData, addedFromProductPage)

{

ajaxCart.updateCart(jsonData);

 

//reactive the button when adding has finished

if (addedFromProductPage)

$('body#product #add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled');

else

$('.ajax_add_to_cart_button').removeAttr('disabled');

},

 

// add a product in the cart via ajax

add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist){

if (addedFromProductPage && !checkCustomizations())

{

alert(fieldRequired);

return ;

}

emptyCustomizations();

//disabled the button when adding to do not double add if user double click

if (addedFromProductPage)

{

$('body#product #add_to_cart input').attr('disabled', 'disabled').removeClass('exclusive').addClass('exclusive_disabled');

$('.filled').removeClass('filled');

}

else

$(callerElement).attr('disabled', 'disabled');

 

if ($('#cart_block #cart_block_list').hasClass('collapsed'))

this.expand();

//send the ajax request to the server

$.ajax({

type: 'POST',

url: baseDir + 'cart.php',

async: true,

cache: false,

dataType : "json",

data: 'add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&token=' + static_token + ( (parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination): ''),

success: function(jsonData,textStatus,jqXHR)

{

// add appliance to whishlist module

if (whishlist && !jsonData.errors)

WishlistAddProductCart(whishlist[0], idProduct, idCombination, whishlist[1]);

 

// add the picture to the cart

var $element = $(callerElement).parent().parent().find('a.product_image img,a.product_img_link img');

if (!$element.length)

$element = $('#bigpic');

var $picture = $element.clone();

var pictureOffsetOriginal = $element.offset();

 

if ($picture.size())

$picture.css({'position': 'absolute', 'top': pictureOffsetOriginal.top, 'left': pictureOffsetOriginal.left});

 

var pictureOffset = $picture.offset();

var cartBlockOffset = $('#cart_block').offset();

 

// Check if the block cart is activated for the animation

if (cartBlockOffset != undefined && $picture.size())

{

$picture.appendTo('body');

$picture.css({ 'position': 'absolute', 'top': $picture.css('top'), 'left': $picture.css('left') })

.animate({ 'width': $element.attr('width')*0.66, 'height': $element.attr('height')*0.66, 'opacity': 0.2, 'top': cartBlockOffset.top + 30, 'left': cartBlockOffset.left + 15 }, 1000)

.fadeOut(100, function() {

ajaxCart.updateCartInformation(jsonData, addedFromProductPage);

});

}

else

ajaxCart.updateCartInformation(jsonData, addedFromProductPage);

},

error: function(XMLHttpRequest, textStatus, errorThrown)

{

alert("TECHNICAL ERROR: unable to add the product.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);

//reactive the button when adding has finished

if (addedFromProductPage)

$('body#product #add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled');

else

$(callerElement).removeAttr('disabled');

}

});

},

 

//remove a product from the cart via ajax

remove : function(idProduct, idCombination, customizationId){

//send the ajax request to the server

$.ajax({

type: 'POST',

url: baseDir + 'cart.php',

async: true,

cache: false,

dataType : "json",

data: 'delete=1&id_product=' + idProduct + '&ipa=' + ((idCombination != null && parseInt(idCombination)) ? idCombination : '') + ((customizationId && customizationId != null) ? '&id_customization=' + customizationId : '') + '&token=' + static_token + '&ajax=true',

success: function(jsonData) {

ajaxCart.updateCart(jsonData);

if ($('body').attr('id') == 'order' || $('body').attr('id') == 'order-opc')

deletProductFromSummary(idProduct+'_'+idCombination);

},

error: function() {alert('ERROR: unable to delete the product');}

});

},

 

//hide the products displayed in the page but no more in the json data

hideOldProducts : function(jsonData) {

$(['left_column', 'right_column']).each(function(id, parentId)

{

//delete an eventually removed product of the displayed cart (only if cart is not empty!)

if($('#cart_block #cart_block_list dl.products').length > 0)

{

var removedProductId = null;

var removedProductData = null;

var removedProductDomId = null;

//look for a product to delete...

$('#'+parentId+' #cart_block_list dl.products dt').each(function()

{

//retrieve idProduct and idCombination from the displayed product in the block cart

var domIdProduct = $(this).attr('id');

var firstCut = domIdProduct.replace('cart_block_product_', '');

var ids = firstCut.split('_');

 

//try to know if the current product is still in the new list

var stayInTheCart = false;

for (aProduct in jsonData.products)

{

//we've called the variable aProduct because IE6 bug if this variable is called product

//if product has attributes

if (jsonData.products[aProduct]['id'] == ids[0] && (!ids[1] || jsonData.products[aProduct]['idCombination'] == ids[1]))

{

stayInTheCart = true;

// update the product customization display (when the product is still in the cart)

ajaxCart.hideOldProductCustomizations(jsonData.products[aProduct], domIdProduct);

}

}

//remove product if it's no more in the cart

if(!stayInTheCart)

{

removedProductId = $(this).attr('id');

//return false; // Regarding that the customer can only remove products one by one, we break the loop

}

 

//if there is a removed product, delete it from the displayed block cart

if (removedProductId != null)

{

var firstCut = removedProductId.replace('cart_block_product_', '');

var ids = firstCut.split('_');

 

$('#'+parentId+' #'+removedProductId).addClass('strike').fadeTo('slow', 0, function(){

$(this).slideUp('slow', function(){

$(this).remove();

//if the cart is now empty, show the 'no product in the cart' message

if($('#'+parentId+' #cart_block dl.products dt').length == 0)

{

$('#'+parentId+' p#cart_block_no_products').slideDown('fast');

$('#'+parentId+' div#cart_block dl.products').remove();

}

});

});

$('#'+parentId+' dd#cart_block_combination_of_' + ids[0] + (ids[1] ? '_'+ids[1] : '') ).fadeTo('fast', 0, function(){

$(this).slideUp('fast', function(){

$(this).remove();

});

});

}

});

}

});

},

 

hideOldProductCustomizations : function (product, domIdProduct)

{

$(['left_column', 'right_column']).each(function(id, parentId)

{

var customizationList = $('#'+parentId+' #cart_block #cart_block_list ul#customization_' + product['id'] + '_' + product['idCombination']);

if(customizationList.length > 0)

{

$(customizationList).find("li").each(function(){

$(this).find("div").each(function() {

var customizationDiv = $(this).attr('id');

var tmp = customizationDiv.replace('deleteCustomizableProduct_', '');

var ids = tmp.split('_');

if ((parseInt(product.idCombination) == parseInt(ids[2])) && !ajaxCart.doesCustomizationStillExist(product, ids[0]))

$('#' + customizationDiv).parent().addClass('strike').fadeTo('slow', 0, function(){

$(this).slideUp('slow');

$(this).remove();

});

});

});

}

var removeLinks = $('#'+parentId+' #cart_block_product_' + domIdProduct).find('a.ajax_cart_block_remove_link');

if (!product.hasCustomizedDatas && !removeLinks.length)

$('#'+parentId+' #' + domIdProduct + ' span.remove_link').html('<a class="ajax_cart_block_remove_link" rel="nofollow" href="' + baseDir + 'cart.php?delete&id_product=' + product['id'] + '&ipa=' + product['idCombination'] + '&token=' + static_token + '" title="' + removingLinkText + '"> </a>');

});

},

 

doesCustomizationStillExist : function (product, customizationId)

{

var exists = false;

 

$(product.customizedDatas).each(function() {

if (this.customizationId == customizationId)

{

exists = true;

// This return does not mean that we found nothing but simply break the loop

return false;

}

});

return (exists);

},

 

//refresh display of vouchers (needed for vouchers in % of the total)

refreshVouchers : function (jsonData) {

if (jsonData.discounts.length == 0)

$('#vouchers').remove();

else

{

$('.bloc_cart_voucher').each(function(){

var idElmt = $(this).attr('id').replace('bloc_cart_voucher_','');

var toDelete = true;

for (i=0;i<jsonData.discounts.length;i++)

{

if (jsonData.discounts.id == idElmt)

{

$('#bloc_cart_voucher_' + idElmt + ' td.price').text(jsonData.discounts.price);

toDelete = false;

}

}

if (toDelete)

{

$('#bloc_cart_voucher_' + idElmt).fadeTo('fast', 0, function(){

$(this).remove();

});

}

});

}

 

 

},

 

// Update product quantity

updateProductQuantity : function (product, quantity) {

$(['left_column', 'right_column']).each(function(id, parentId)

{

$('#'+parentId+' dt#cart_block_product_' + product.id + (product.idCombination ? '_' + product.idCombination : '') + ' .quantity').fadeTo('fast', 0, function() {

$(this).text(quantity);

$(this).fadeTo('fast', 1, function(){

$(this).fadeTo('fast', 0, function(){

$(this).fadeTo('fast', 1, function(){

$(this).fadeTo('fast', 0, function(){

$(this).fadeTo('fast', 1);

});

});

});

});

});

});

},

 

 

//display the products witch are in json data but not already displayed

displayNewProducts : function(jsonData) {

$(['left_column', 'right_column']).each(function(id, parentId)

{

//add every new products or update displaying of every updated products

$(jsonData.products).each(function(){

//fix ie6 bug (one more item 'undefined' in IE6)

if (this.id != undefined)

{

//create a container for listing the products and hide the 'no product in the cart' message (only if the cart was empty)

if ($('#'+parentId+' div#cart_block dl.products').length == 0)

$('#'+parentId+' p#cart_block_no_products').fadeTo('fast', 0, function(){

$(this).slideUp('fast').fadeTo(0, 1);

}).before('<dl class="products"></dl>');

 

//if product is not in the displayed cart, add a new product's line

var domIdProduct = this.id + (this.idCombination ? '_' + this.idCombination : '');

var domIdProductAttribute = this.id + '_' + (this.idCombination ? this.idCombination : '0');

if($('#'+parentId+' #cart_block dt#cart_block_product_'+ domIdProduct ).length == 0)

{

var productId = parseInt(this.id);

var productAttributeId = (this.hasAttributes ? parseInt(this.attributes) : 0);

var content = '<dt class="hidden" id="cart_block_product_' + domIdProduct + '">';

content += '<span class="quantity-formated"><span class="quantity">' + this.quantity + '</span>x</span>';

var name = (this.name.length > 12 ? this.name.substring(0, 10) + '...' : this.name);

content += '<a href="' + this.link + '" title="' + this.name + '">' + name + '</a>';

content += '<span class="remove_link"><a rel="nofollow" class="ajax_cart_block_remove_link" href="' + baseDir + 'cart.php?delete&id_product=' + productId + '&token=' + static_token + (this.hasAttributes ? '&ipa=' + parseInt(this.idCombination) : '') + '"> </a></span>';

content += '<span class="price">' + this.priceByLine + '</span>';

content += '</dt>';

if (this.hasAttributes)

content += '<dd id="cart_block_combination_of_' + domIdProduct + '" class="hidden"><a href="' + this.link + '" title="' + this.name + '">' + this.attributes + '</a>';

if (this.hasCustomizedDatas)

content += ajaxCart.displayNewCustomizedDatas(this);

if (this.hasAttributes) content += '</dd>';

$('#'+parentId+' #cart_block dl.products').append(content);

}

//else update the product's line

else

{

var jsonProduct = this;

if($('#'+parentId+' dt#cart_block_product_' + domIdProduct + ' .quantity').text() != jsonProduct.quantity || $('dt#cart_block_product_' + domIdProduct + ' .price').text() != jsonProduct.priceByLine)

{

&nbs

Link to comment
Share on other sites

  • 4 weeks later...
×
×
  • Create New...