// Fixing problems with blockcart
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@11642 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
+18
-4
@@ -858,7 +858,7 @@ class CartCore extends ObjectModel
|
||||
CartRule::autoAddToCart($context);
|
||||
|
||||
if ($product->customizable)
|
||||
return $this->_updateCustomizationQuantity((int)$quantity, (int)$id_customization, (int)$id_product, (int)$id_product_attribute, $operator);
|
||||
return $this->_updateCustomizationQuantity((int)$quantity, (int)$id_customization, (int)$id_product, (int)$id_product_attribute, (int)$id_address_delivery , $operator);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
@@ -866,7 +866,7 @@ class CartCore extends ObjectModel
|
||||
/*
|
||||
** Customization management
|
||||
*/
|
||||
protected function _updateCustomizationQuantity($quantity, $id_customization, $id_product, $id_product_attribute, $operator = 'up')
|
||||
protected function _updateCustomizationQuantity($quantity, $id_customization, $id_product, $id_product_attribute, $id_address_delivery, $operator = 'up')
|
||||
{
|
||||
// Link customization to product combination when it is first added to cart
|
||||
if (empty($id_customization))
|
||||
@@ -880,6 +880,7 @@ class CartCore extends ObjectModel
|
||||
UPDATE `'._DB_PREFIX_.'customization`
|
||||
SET `quantity` = '.(int)$quantity.',
|
||||
`id_product_attribute` = '.(int)$id_product_attribute.',
|
||||
`id_address_delivery` = '.(int)$id_address_delivery.',
|
||||
`in_cart` = 1
|
||||
WHERE `id_customization` = '.(int)$field['id_customization']);
|
||||
}
|
||||
@@ -901,11 +902,17 @@ class CartCore extends ObjectModel
|
||||
|
||||
return Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'customization`
|
||||
SET `quantity` = `quantity` '.($operator == 'up' ? '+ ' : '- ').(int)$quantity.'
|
||||
SET
|
||||
`quantity` = `quantity` '.($operator == 'up' ? '+ ' : '- ').(int)$quantity.',
|
||||
`id_address_delivery` = '.(int)$id_address_delivery.'
|
||||
WHERE `id_customization` = '.(int)$id_customization);
|
||||
}
|
||||
else
|
||||
Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'customization`
|
||||
SET `id_address_delivery` = '.(int)$id_address_delivery.'
|
||||
WHERE `id_customization` = '.(int)$id_customization);
|
||||
}
|
||||
|
||||
// refresh cache of self::_products
|
||||
$this->_products = $this->getProducts(true);
|
||||
$this->update(true);
|
||||
@@ -3010,6 +3017,13 @@ class CartCore extends ObjectModel
|
||||
WHERE `id_cart` = '.(int)$this->id.'
|
||||
AND (`id_address_delivery` = 0 OR `id_address_delivery` IS NULL)
|
||||
AND `id_shop` = '.(int)$this->id_shop;
|
||||
|
||||
$sql = 'UPDATE `'._DB_PREFIX_.'customization`
|
||||
SET `id_address_delivery` = '.(int)$id_address_delivery.'
|
||||
WHERE `id_cart` = '.(int)$this->id.'
|
||||
AND (`id_address_delivery` = 0 OR `id_address_delivery` IS NULL)
|
||||
AND `id_shop` = '.(int)$this->id_shop;
|
||||
|
||||
Db::getInstance()->execute($sql);
|
||||
}
|
||||
|
||||
|
||||
@@ -2117,7 +2117,6 @@ FileETag INode MTime Size
|
||||
foreach ($files as $file)
|
||||
if (strpos($file, $real_ext) && strpos($file, $real_ext) == (strlen($file) - $real_ext_length))
|
||||
$filtered_files[] = $dir . '/' . $file;
|
||||
//elog($filtered_files);
|
||||
return $filtered_files;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,7 +395,8 @@ var ajaxCart = {
|
||||
|
||||
// Update product quantity
|
||||
updateProductQuantity : function (product, quantity) {
|
||||
$('dt#cart_block_product_' + product.id + (product.idCombination ? '_' + product.idCombination : '') + ' .quantity').fadeTo('fast', 0, function() {
|
||||
|
||||
$('dt#cart_block_product_' + product.id + '_' + (product.idCombination ? product.idCombination : '0')+ '_' + (product.idAddressDelivery ? product.idAddressDelivery : '0') + ' .quantity').fadeTo('fast', 0, function() {
|
||||
$(this).text(quantity);
|
||||
$(this).fadeTo('fast', 1, function(){
|
||||
$(this).fadeTo('fast', 0, function(){
|
||||
@@ -425,7 +426,8 @@ var ajaxCart = {
|
||||
$('p#cart_block_no_products').hide();
|
||||
}
|
||||
//if product is not in the displayed cart, add a new product's line
|
||||
var domIdProduct = this.id + (this.idCombination ? '_' + this.idCombination : '');
|
||||
var domIdProduct = this.id + '_' + (this.idCombination ? this.idCombination : '0') + '_' + (this.idAddressDelivery ? this.idAddressDelivery : '0');
|
||||
|
||||
var domIdProductAttribute = this.id + '_' + (this.idCombination ? this.idCombination : '0');
|
||||
if($('#cart_block dt#cart_block_product_'+ domIdProduct ).length == 0)
|
||||
{
|
||||
@@ -511,7 +513,7 @@ var ajaxCart = {
|
||||
$(this.datas).each(function(){
|
||||
if (this['index'] == 0)
|
||||
{
|
||||
content += this.truncatedValue.replace(/<br \/>/g, ' ');
|
||||
content += ' ' + this.truncatedValue.replace(/<br \/>/g, ' ');
|
||||
done = 1;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
"hasCustomizedDatas": {if isset($customizedDatas.$productId.$productAttributeId)}true{else}false{/if},
|
||||
|
||||
"customizedDatas":[
|
||||
{if isset($customizedDatas.$productId.$productAttributeId)}
|
||||
{if isset($customizedDatas.$productId.$productAttributeId[$product.id_address_delivery])}
|
||||
{foreach from=$customizedDatas.$productId.$productAttributeId[$product.id_address_delivery] key='id_customization' item='customization' name='customizedDatas'}{ldelim}
|
||||
{* This empty line was made in purpose (product addition debug), please leave it here *}
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
/* Special style for block cart*/
|
||||
#cart_block {
|
||||
z-index: 10;
|
||||
z-index: 10;
|
||||
display:none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 65px;
|
||||
height: auto;
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 65px;
|
||||
height: auto;
|
||||
width: 200px;
|
||||
-moz-border-radius-bottomright: 3px;
|
||||
-moz-border-radius-bottomleft: 3px;
|
||||
-webkit-border-radius-bottomright: 3px;
|
||||
-webkit-border-radius-bottomleft: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
box-shadow: 0 1px 0 #C6C6C6;
|
||||
box-shadow: 0 1px 0 #C6C6C6;
|
||||
background:#eee
|
||||
}
|
||||
#cart_block.cart_block_hover {display:block}
|
||||
@@ -24,11 +24,11 @@
|
||||
}
|
||||
#cart_block h4 span {
|
||||
float: right;
|
||||
padding-left: 10px;
|
||||
text-transform: none;
|
||||
background-position: left top;
|
||||
background-repeat: no-repeat;
|
||||
cursor: pointer
|
||||
padding-left: 10px;
|
||||
text-transform: none;
|
||||
background-position: left top;
|
||||
background-repeat: no-repeat;
|
||||
cursor: pointer
|
||||
}
|
||||
#cart_block h4 span#block_cart_collapse {background-image: url(img/icon/sort_asc_white.png) }
|
||||
#cart_block h4 span#block_cart_expand {background-image: url(img/icon/sort_desc_white.png) }
|
||||
@@ -65,7 +65,6 @@
|
||||
#cart_block #cart_block_list dt {padding:4px 0}
|
||||
#cart_block #cart_block_list dt a {font-weight:bold}
|
||||
#cart_block #cart_block_list dd {
|
||||
display:none;
|
||||
margin-left:20px
|
||||
}
|
||||
|
||||
|
||||
@@ -69,16 +69,16 @@ var removingLinkText = '{l s='remove this product from my cart' mod='blockcart'
|
||||
</dt>
|
||||
{if isset($product.attributes_small)}
|
||||
<dd id="cart_block_combination_of_{$product.id_product}{if $product.id_product_attribute}_{$product.id_product_attribute}{/if}" class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}">
|
||||
<a href="{$link->getProductLink($product)}" title="{l s='Product detail'}">{$product.attributes_small}</a>
|
||||
<a href="{$link->getProductLink($product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)}" title="{l s='Product detail'}">{$product.attributes_small}</a>
|
||||
{/if}
|
||||
|
||||
<!-- Customizable datas -->
|
||||
{if isset($customizedDatas.$productId.$productAttributeId)}
|
||||
{if !isset($product.attributes_small)}<dd id="cart_block_combination_of_{$product.id_product}{if $product.id_product_attribute}_{$product.id_product_attribute}{/if}" class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}">{/if}
|
||||
{if isset($customizedDatas.$productId.$productAttributeId[$product.id_address_delivery])}
|
||||
{if !isset($product.attributes_small)}<dd id="cart_block_combination_of_{$product.id_product}_{if $product.id_product_attribute}{$product.id_product_attribute}{else}0{/if}_{if $product.id_address_delivery}{$product.id_address_delivery}{else}0{/if}" class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}">{/if}
|
||||
<ul class="cart_block_customizations" id="customization_{$productId}_{$productAttributeId}">
|
||||
{foreach from=$customizedDatas.$productId.$productAttributeId[$product.id_address_delivery] key='id_customization' item='customization' name='customizations'}
|
||||
<li name="customization">
|
||||
<div class="deleteCustomizableProduct" id="deleteCustomizableProduct_{$id_customization|intval}_{$product.id_product|intval}_{$product.id_product_attribute|intval}"><a class="ajax_cart_block_remove_link" href="{$link->getPageLink('cart', true, NULL, "delete&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_customization={$id_customization}&token={$static_token}")}"> </a></div>
|
||||
<div class="deleteCustomizableProduct" id="deleteCustomizableProduct_{$id_customization|intval}_{$product.id_product|intval}_{$product.id_product_attribute|intval}_{$product.id_address_delivery|intval}"><a class="ajax_cart_block_remove_link" href="{$link->getPageLink('cart', true, NULL, "delete&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_customization={$id_customization}&token={$static_token}")}"> </a></div>
|
||||
<span class="quantity-formated"><span class="quantity">{$customization.quantity}</span>x</span>{if isset($customization.datas.$CUSTOMIZE_TEXTFIELD.0)}
|
||||
{$customization.datas.$CUSTOMIZE_TEXTFIELD.0.value|escape:html:'UTF-8'|replace:"<br />":" "|truncate:28}
|
||||
{else}
|
||||
|
||||
Reference in New Issue
Block a user