From fdcaf1fc70ffd274d8e9c4bf21b26fd7d33606a8 Mon Sep 17 00:00:00 2001 From: "(d)oekia" Date: Mon, 26 Nov 2012 14:11:35 +0100 Subject: [PATCH 1/3] [-] FO: PSCFV-4181: pruneoff unavailable products --- controllers/front/CompareController.php | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/controllers/front/CompareController.php b/controllers/front/CompareController.php index 16aae6a1b..e655d42f3 100644 --- a/controllers/front/CompareController.php +++ b/controllers/front/CompareController.php @@ -106,21 +106,24 @@ class CompareControllerCore extends FrontController if (!$curProduct->active || !$curProduct->isAssociatedToShop()) { unset($ids[$k]); - continue; - } - - if (!$curProduct->active || !$curProduct->isAssociatedToShop()) - { - unset($ids[$k]); + if (isset($this->context->cookie->id_compare)) + CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id); continue; } if (!Validate::isLoadedObject($curProduct)) + { + unset($ids[$k]); + if (isset($this->context->cookie->id_compare)) + CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id); continue; + } if (!$curProduct->active) { unset($ids[$k]); + if (isset($this->context->cookie->id_compare)) + CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id); continue; } @@ -149,11 +152,17 @@ class CompareControllerCore extends FrontController )); $this->context->smarty->assign('HOOK_EXTRA_PRODUCT_COMPARISON', Hook::exec('displayProductComparison', array('list_ids_product' => $ids))); } + else if (isset($this->context->cookie->id_compare)) + { + $object = new CompareProduct((int)$this->context->cookie->id_compare); + if (Validate::isLoadedObject($object)) + $object->delete(); + } } } $this->context->smarty->assign('hasProduct', $hasProduct); $this->setTemplate(_PS_THEME_DIR_.'products-comparison.tpl'); } -} - + +} \ No newline at end of file From 9a2fbd3b564b30e894a0a7d09f0401746b8fd756 Mon Sep 17 00:00:00 2001 From: "(d)oekia" Date: Mon, 26 Nov 2012 15:03:42 +0100 Subject: [PATCH 2/3] Merge/simplify statements --- controllers/front/CompareController.php | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/controllers/front/CompareController.php b/controllers/front/CompareController.php index e655d42f3..07e52be5b 100644 --- a/controllers/front/CompareController.php +++ b/controllers/front/CompareController.php @@ -103,23 +103,7 @@ class CompareControllerCore extends FrontController foreach ($ids as $k => &$id) { $curProduct = new Product((int)$id, true, $this->context->language->id); - if (!$curProduct->active || !$curProduct->isAssociatedToShop()) - { - unset($ids[$k]); - if (isset($this->context->cookie->id_compare)) - CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id); - continue; - } - - if (!Validate::isLoadedObject($curProduct)) - { - unset($ids[$k]); - if (isset($this->context->cookie->id_compare)) - CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id); - continue; - } - - if (!$curProduct->active) + if (!Validate::isLoadedObject($curProduct) || !$curProduct->active || !$curProduct->isAssociatedToShop()) { unset($ids[$k]); if (isset($this->context->cookie->id_compare)) From e55e213783ab8b06f35f791590b212b648d91dff Mon Sep 17 00:00:00 2001 From: "(d)oekia" Date: Mon, 26 Nov 2012 15:08:32 +0100 Subject: [PATCH 3/3] unset should go after usage of by reference value --- controllers/front/CompareController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/front/CompareController.php b/controllers/front/CompareController.php index 07e52be5b..5a1fb68e6 100644 --- a/controllers/front/CompareController.php +++ b/controllers/front/CompareController.php @@ -105,9 +105,9 @@ class CompareControllerCore extends FrontController $curProduct = new Product((int)$id, true, $this->context->language->id); if (!Validate::isLoadedObject($curProduct) || !$curProduct->active || !$curProduct->isAssociatedToShop()) { - unset($ids[$k]); if (isset($this->context->cookie->id_compare)) CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id); + unset($ids[$k]); continue; }