MrHieu Posted May 8, 2010 Share Posted May 8, 2010 I checked arround the Prestashop Showcases, and I like this style of cart block very much. You can see it in this site :http://www.archiduchesse.com/Is there any modules doing that ? Or how to have this modification ? Any ideas plz tell me :-S Link to comment Share on other sites More sharing options...
rocky Posted May 8, 2010 Share Posted May 8, 2010 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 More sharing options...
razaro Posted May 8, 2010 Share Posted May 8, 2010 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 More sharing options...
MrHieu Posted May 8, 2010 Author Share Posted May 8, 2010 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 More sharing options...
razaro Posted May 8, 2010 Share Posted May 8, 2010 You need to transplant cart block to top of the page.See this topic. Link to comment Share on other sites More sharing options...
123julien Posted June 29, 2010 Share Posted June 29, 2010 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 helpJ. Link to comment Share on other sites More sharing options...
123julien Posted July 1, 2010 Share Posted July 1, 2010 Hi everyone,I'm still stuck with the same problem and on top of that on the "order.php" page the cart won't collapsed even if I rollover. Is that a known issue?Cheers J Link to comment Share on other sites More sharing options...
razaro Posted July 1, 2010 Share Posted July 1, 2010 Try to comment out line 488 in ajax.rs (update function) // ajaxCart.expand(); so cart will not expand.And for order page can you post a link ? Link to comment Share on other sites More sharing options...
123julien Posted July 1, 2010 Share Posted July 1, 2010 It works perfectly now. But it's still expanded on the order.php page...weird.I'm developing on my local network so I can't give any URL...I attached my blockcart.tpl and ajax-cart.js...I hope it will help...EDIT: Can't attach blockcart.tpl for some reason so here is a link: http://quelbar.com/blockcart.tpl ajax-cart.js Link to comment Share on other sites More sharing options...
razaro Posted July 1, 2010 Share Posted July 1, 2010 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 More sharing options...
123julien Posted July 1, 2010 Share Posted July 1, 2010 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 More sharing options...
razaro Posted July 1, 2010 Share Posted July 1, 2010 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 More sharing options...
123julien Posted July 1, 2010 Share Posted July 1, 2010 I have checked the first topic but the modification were already made...I think you forgot the link for the 2nd one...Cheers Link to comment Share on other sites More sharing options...
razaro Posted July 1, 2010 Share Posted July 1, 2010 In changelog i found this FO: bug fixed #3694 : no ajax cart for order pagesTry to remove {if !$order_page} and {/if} from blockcart.tpl to see if you can reproduce that bug Link to comment Share on other sites More sharing options...
123julien Posted July 1, 2010 Share Posted July 1, 2010 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 anywaysCheersJ Link to comment Share on other sites More sharing options...
123julien Posted July 2, 2010 Share Posted July 2, 2010 I'm already back...Sorry about that.In my cart I have 3 elements when it's collapsed1. 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 More sharing options...
Dhen Bagoez Posted May 4, 2011 Share Posted May 4, 2011 Thank so much...It's works fine in my store V1.4.1 Link to comment Share on other sites More sharing options...
jokoss Posted June 3, 2011 Share Posted June 3, 2011 Bonjour, est t'il possible de dérouler le panier au clique, au lieu du passage de la souris ? Avec une autre fonction peut-être ? Link to comment Share on other sites More sharing options...
amerigeau Posted July 7, 2011 Share Posted July 7, 2011 Hi everybody,I have test the tuto and it works also for me but there is a trouble during the transition between collapsed / expanded.You could see it in action here : boutiqueCould you tell me why the action isn't smooth ?Thanks Link to comment Share on other sites More sharing options...
dwidoo Posted July 9, 2011 Share Posted July 9, 2011 Hi all,pouss1, I have the same problem. And also the blockcart is expanded when the page has loaded or is refreshed. How could we make it always collapsed except when it is hovered ?Thank you all Link to comment Share on other sites More sharing options...
noesac Posted July 9, 2011 Share Posted July 9, 2011 That's really slick! I wish my cart was like that...! Link to comment Share on other sites More sharing options...
amerigeau Posted July 9, 2011 Share Posted July 9, 2011 Hi, This post should help you to make the block cart as beautiful as archiduchesse.com Bye Link to comment Share on other sites More sharing options...
dwidoo Posted July 9, 2011 Share Posted July 9, 2011 pouss1,Do you also have the blockcart expanded when the page has loaded or is refreshed? How could we make it always collapsed except when it is hovered ?Thanks Link to comment Share on other sites More sharing options...
amerigeau Posted July 9, 2011 Share Posted July 9, 2011 No, I don't have the block cart expanded when the page is reloaded.Just follow the tuto I have done one my previous post. Link to comment Share on other sites More sharing options...
dwidoo Posted July 9, 2011 Share Posted July 9, 2011 Thank you pouss1 but where is your tuto ? I cannot find it Link to comment Share on other sites More sharing options...
amerigeau Posted July 9, 2011 Share Posted July 9, 2011 Hi,Sorry, the link missed ! This is the url : http://www.prestashop.com/forums/viewthread/70413/modules_tiers/panier_ajax_on_mouseover_dans_le_header_qui_se_deplie Link to comment Share on other sites More sharing options...
dwidoo Posted July 9, 2011 Share Posted July 9, 2011 there is no tuto, and there is no post from you on this thread Link to comment Share on other sites More sharing options...
amerigeau Posted July 9, 2011 Share Posted July 9, 2011 Hi,All is in the link I have done, its not mine, but its like a tuto to do the effect on the block cart Link to comment Share on other sites More sharing options...
dwidoo Posted July 12, 2011 Share Posted July 12, 2011 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 More sharing options...
amerigeau Posted July 12, 2011 Share Posted July 12, 2011 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 More sharing options...
dwidoo Posted July 24, 2011 Share Posted July 24, 2011 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 More sharing options...
csogilvie Posted August 5, 2011 Share Posted August 5, 2011 Hi, As this thread now appears to be a bit broken formatting wise, any chance you can repost the details? Link to comment Share on other sites More sharing options...
vetrnicek Posted January 5, 2012 Share Posted January 5, 2012 Hi, please, is here any way to collapse whole shopping cart and expand it on hover other element? I tried methods from Razaro, but there still appears top of the cart. Really thanks for your ideas! Link to comment Share on other sites More sharing options...
celestesaad Posted January 31, 2012 Share Posted January 31, 2012 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 More sharing options...
Olivia coum Posted August 9, 2012 Share Posted August 9, 2012 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 More sharing options...
Dhen Bagoez Posted August 10, 2012 Share Posted August 10, 2012 You can download for free here: http://addons.prestashop.com/en/neutral/3337-prestashop-template-15.html Theme include header dropdown cart developed and certified by PrestaShop. hope can helps, thanks Link to comment Share on other sites More sharing options...
Nagraj Posted September 3, 2012 Share Posted September 3, 2012 You can download for free here: http://addons.presta...emplate-15.html Theme include header dropdown cart developed and certified by PrestaShop. hope can helps, thanks Hi i have download the 1.5 theme and using it for the 1.4.8.2 version, but the mouseover action is not working. Can u help on this? Thanks Nagaraju Link to comment Share on other sites More sharing options...
Recommended Posts