From 575e35ffbc8217a65a310c1f2167bbf9587baf13 Mon Sep 17 00:00:00 2001 From: MaxBUhe Date: Fri, 18 Aug 2023 14:07:53 +0200 Subject: [PATCH] [changed] 'an article has been removed from basket'-check --- .../Controller/BasketController.php | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/Modules/Application/Controller/BasketController.php b/Modules/Application/Controller/BasketController.php index 511f151..8e0bdff 100644 --- a/Modules/Application/Controller/BasketController.php +++ b/Modules/Application/Controller/BasketController.php @@ -52,7 +52,8 @@ class BasketController extends BasketController_parent $sBasketItemId = Registry::getRequest()->getRequestEscapedParameter('bindex'); - $aProducts[$sProductId] = ['am' => $dAmount, + $aProducts[$sProductId] = [ + 'am' => $dAmount, 'sel' => $aSel, 'persparam' => $aPersParam, 'basketitemid' => $sBasketItemId @@ -63,9 +64,7 @@ class BasketController extends BasketController_parent $toRemoveArticleIdList = []; $artIdOnArtAmountList = []; - if (Registry::getRequest()->getRequestEscapedParameter('removeBtn') !== null - or Registry::getRequest()->getRequestParameter('updateBtn') !== null) { - + if ($this->isArticleRemovedState($aProducts)) { //setting amount to 0 if removing article from basket foreach ($aProducts as $sProductId => $aProduct) { if ((isset($aProduct['remove']) && $aProduct['remove']) or intval($aProduct['am']) === 0) { @@ -100,4 +99,29 @@ class BasketController extends BasketController_parent $this->addTplParam('toRemoveArticles', $oArtList); } } + + /** + * @return bool + * + * checks, if we're in the short state of "an Article has been removed" + * We check by looking for the "'removeBtn' is not null", as a sign for it has been triggered/ clicked + * if that doesn't work, we check if there's an Article in the Products array, that has "'am' = 0" + * Which also shows we're in that state rn + */ + protected function isArticleRemovedState(array $productsArray) :bool + { + if (Registry::getRequest()->getRequestEscapedParameter('removeBtn') + or Registry::getRequest()->getRequestEscapedParameter('updateBtn') + ){ + return true; + }else{ + foreach ($productsArray as $aProduct) { + if (intval($aProduct['am']) === 0) { + return true; + } + } + } + + return false; + } } \ No newline at end of file