[*] FO: Don't make useless ajax requests to blockcart on the cart page

This commit is contained in:
Rémi Gaillard
2013-05-21 10:56:55 +02:00
parent 0d4fd0729b
commit 3d9596aa99
4 changed files with 26 additions and 8 deletions
+2 -1
View File
@@ -335,7 +335,8 @@ class CartControllerCore extends FrontController
if ($result['customizedDatas'])
Product::addCustomizationPrice($result['summary']['products'], $result['customizedDatas']);
die(Tools::jsonEncode($result));
Hook::exec('actionCartListOverride', array('summary' => $result, 'json' => &$json));
die(Tools::jsonEncode(array_merge($result, (array)Tools::jsonDecode($json, true))));
}
// @todo create a hook
elseif (file_exists(_PS_MODULE_DIR_.'/blockcart/blockcart-ajax.php'))
+3 -1
View File
@@ -5,4 +5,6 @@ ALTER TABLE `PREFIX_store` CHANGE `latitude` `latitude` DECIMAL( 13, 8 ) NULL
INSERT INTO `PREFIX_configuration` (`name`, `value`, `date_add`, `date_upd`) VALUES('PS_CUSTOMER_CREATION_EMAIL', 1, NOW(), NOW());
ALTER TABLE `PREFIX_webservice_account` CHANGE `class_name` `class_name` VARCHAR(64) NOT NULL DEFAULT 'WebserviceRequest',
CHANGE `module_name` `module_name` VARCHAR(64) NULL DEFAULT NULL;
CHANGE `module_name` `module_name` VARCHAR(64) NULL DEFAULT NULL;
/* PHP:add_module_to_hook(blockcart, actionCartListOverride); */;
+11
View File
@@ -164,6 +164,7 @@ class BlockCart extends Module
parent::install() == false
|| $this->registerHook('top') == false
|| $this->registerHook('header') == false
|| $this->registerHook('actionCartListOverride') == false
|| Configuration::updateValue('PS_BLOCK_CART_AJAX', 1) == false)
return false;
return true;
@@ -195,10 +196,20 @@ class BlockCart extends Module
return $res;
}
public function hookActionCartListOverride($params)
{
if (!Configuration::get('PS_BLOCK_CART_AJAX'))
return;
$this->assignContentVars(array('cookie' => $this->context->cookie, 'cart' => $this->context->cart));
$params['json'] = $this->display(__FILE__, 'blockcart-json.tpl');
}
public function hookHeader()
{
if (Configuration::get('PS_CATALOG_MODE'))
return;
$this->context->controller->addCSS(($this->_path).'blockcart.css', 'all');
if ((int)(Configuration::get('PS_BLOCK_CART_AJAX')))
$this->context->controller->addJS(($this->_path).'ajax-cart.js');
+10 -6
View File
@@ -106,6 +106,8 @@ function changeAddressDelivery(obj)
if ($('#product_'+id_product+'_'+id_product_attribute+'_0_'+new_id_address_delivery).length)
{
updateCartSummary(jsonData.summary);
if (window.ajaxCart != undefined)
ajaxCart.updateCart(jsonData);
updateCustomizedDatas(jsonData.customizedDatas);
updateHookShoppingCart(jsonData.HOOK_SHOPPING_CART);
updateHookShoppingCartExtra(jsonData.HOOK_SHOPPING_CART_EXTRA);
@@ -119,9 +121,8 @@ function changeAddressDelivery(obj)
// @todo improve customization upgrading
$('.product_'+id_product+'_'+id_product_attribute+'_0_'+old_id_address_delivery).remove();
}
if (window.ajaxCart != undefined)
ajaxCart.refresh();
ajaxCart.updateCart(jsonData);
updateAddressId(id_product, id_product_attribute, old_id_address_delivery, new_id_address_delivery);
cleanSelectAddressDelivery();
}
@@ -190,9 +191,8 @@ function changeAddressDelivery(obj)
cleanSelectAddressDelivery();
updateCartSummary(jsonData.summary);
if (window.ajaxCart !== undefined)
ajaxCart.refresh();
ajaxCart.updateCart(jsonData);
}
});
}
@@ -370,6 +370,8 @@ function deleteProductFromSummary(id)
});
}
updateCartSummary(jsonData.summary);
if (window.ajaxCart != undefined)
ajaxCart.updateCart(jsonData);
updateCustomizedDatas(jsonData.customizedDatas);
updateHookShoppingCart(jsonData.HOOK_SHOPPING_CART);
updateHookShoppingCartExtra(jsonData.HOOK_SHOPPING_CART_EXTRA);
@@ -461,6 +463,8 @@ function upQuantity(id, qty)
if (jsonData.refresh)
location.reload();
updateCartSummary(jsonData.summary);
if (window.ajaxCart != undefined)
ajaxCart.updateCart(jsonData);
if (customizationId !== 0)
updateCustomizedDatas(jsonData.customizedDatas);
updateHookShoppingCart(jsonData.HOOK_SHOPPING_CART);
@@ -544,6 +548,8 @@ function downQuantity(id, qty)
if (jsonData.refresh)
location.reload();
updateCartSummary(jsonData.summary);
if (window.ajaxCart !== undefined)
ajaxCart.updateCart(jsonData);
if (customizationId !== 0)
updateCustomizedDatas(jsonData.customizedDatas);
updateHookShoppingCart(jsonData.HOOK_SHOPPING_CART);
@@ -754,8 +760,6 @@ function updateCartSummary(json)
$('#total_wrapping').html(formatCurrency(json.total_wrapping, currencyFormat, currencySign, currencyBlank));
$('#total_wrapping').parent().hide();
}
if (window.ajaxCart !== undefined)
ajaxCart.refresh();
}
function updateCustomizedDatas(json)