From a0422e94de6cc0ecc4af871c8247b8b38b5418bd Mon Sep 17 00:00:00 2001 From: rGaillard Date: Tue, 16 Oct 2012 09:58:54 +0000 Subject: [PATCH] [-] FO: Fix #PSCFV-4992 --- classes/AddressFormat.php | 3 ++- classes/Cart.php | 11 ++++++----- classes/CartRule.php | 13 ++++++++----- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/classes/AddressFormat.php b/classes/AddressFormat.php index 3989d1807..66cde89ce 100644 --- a/classes/AddressFormat.php +++ b/classes/AddressFormat.php @@ -496,7 +496,8 @@ class AddressFormatCore extends ObjectModel $reflect = new ReflectionObject($address); $public_properties = $reflect->getProperties(ReflectionProperty::IS_PUBLIC); foreach ($public_properties as $property) - $layoutData['object'][$property->getName()] = $address->{$property->getName()}; + if (isset($address->{$property->getName()})) + $layoutData['object'][$property->getName()] = $address->{$property->getName()}; } return $layoutData; } diff --git a/classes/Cart.php b/classes/Cart.php index a357d81db..66af2dfea 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -518,11 +518,12 @@ class CartCore extends ObjectModel // Reset the cache before the following return, or else an empty cart will add dozens of queries $products_ids = array(); $pa_ids = array(); - foreach ($result as $row) - { - $products_ids[] = $row['id_product']; - $pa_ids[] = $row['id_product_attribute']; - } + if ($result) + foreach ($result as $row) + { + $products_ids[] = $row['id_product']; + $pa_ids[] = $row['id_product_attribute']; + } // Thus you can avoid one query per product, because there will be only one query for all the products of the cart Product::cacheProductsFeatures($products_ids); Cart::cacheSomeAttributesLists($pa_ids, $this->id_lang); diff --git a/classes/CartRule.php b/classes/CartRule.php index 11fac7811..007d22789 100644 --- a/classes/CartRule.php +++ b/classes/CartRule.php @@ -1095,12 +1095,15 @@ class CartRuleCore extends ObjectModel ) AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.') ORDER BY priority'); - - $cartRules = ObjectModel::hydrateCollection('CartRule', $result); - foreach ($cartRules as $cartRule) - if ($cartRule->checkValidity($context, false, false)) - $context->cart->addCartRule($cartRule->id); + if ($result) + { + $cart_rules = ObjectModel::hydrateCollection('CartRule', $result); + if ($cart_rules) + foreach ($cart_rules as $cart_rule) + if ($cart_rule->checkValidity($context, false, false)) + $context->cart->addCartRule($cart_rule->id); + } } /**