/** * Extend ListingController Result * * @param $result * @return mixed */ public function extendViewData($result) { $request = Shopware()->Front()->Request(); $activePerPage = $this->requestHelper->getPerPage(); foreach ($result["sPerPage"] as &$singlePerPage) { $singlePerPage["link"] .= "&" . RequestAdapter::PARAM_NAME . "=" . $this->requestHelper->getRawActiveOptionIds(); if ($singlePerPage["markup"]) { $activePerPage = $singlePerPage["value"]; } } $pages = $result["sPages"]; $result["sNumberArticles"] = $this->getTotalCount($request); $result["sNumberPages"] = ceil($result["sNumberArticles"] / $activePerPage); $numbersArray = array(); for ($i = 1; $i <= $result["sNumberPages"]; $i++) { if (!isset($pages['numbers'])) { continue; } for ($j = 0; $j < count($pages["numbers"]); $j++) { $numbersArray[$i] = array("markup" => $pages["numbers"][$i]["markup"], "value" => $pages["numbers"][$i]["value"], "link" => $pages["numbers"][$i]["link"] . "&" . RequestAdapter::PARAM_NAME . "=" . $this->requestHelper->getRawActiveOptionIds()); } } $pages["numbers"] = $numbersArray; if (isset($pages["previous"])) { $pages["previous"] .= "&" . RequestAdapter::PARAM_NAME . "=" . $this->requestHelper->getRawActiveOptionIds(); } if (isset($pages["next"])) { $pages["next"] .= "&" . RequestAdapter::PARAM_NAME . "=" . $this->requestHelper->getRawActiveOptionIds(); } $result["sPages"] = $pages; $result["categoryParams"][RequestAdapter::PARAM_NAME] = $this->requestHelper->getRawActiveOptionIds(); return $result; }
/** * Modifies the onGetArticlesByCategoryFilterSql to filter Articles based on the selected options * * 1. determine if is active * 2. extend base query * * @param \Enlight_Event_EventArgs $args * @return string */ public function onGetArticlesByCategoryFilterSql(\Enlight_Event_EventArgs $args) { /** @var int $categoryId */ $categoryId = Shopware()->Front()->Request()->sCategory; $baseQuery = $args->getReturn(); if (!$this->requestHelper->hasVariantIds()) { return $baseQuery; } $filterItems = Shopware()->Container()->get('SwagVariantLegacyFilter')->getFilterConditions($categoryId, $this->requestHelper->getRequestedVariantIds()); /** @var LegacyResponseExtender $legacyResponseExtender */ $legacyResponseExtender = Shopware()->Container()->get('SwagVariantLegacyResponseExtender'); return $legacyResponseExtender->fromFilterGroups($filterItems)->extendQuery($baseQuery); }
/** * @return string */ public function getBaseUrl() { return $this->requestHelper->getBaseUrl(); }
/** * @return string */ public function getRemoveUrl() { return $this->requestHelper->getRemoveUrl($this->getId()); }