/** * @param Request $request * @param ShopContextInterface $context * @return Criteria */ public function createCriteria(Request $request, ShopContextInterface $context) { $criteria = $this->criteriaFactory->createListingCriteria($request, $context); $criteria->removeBaseCondition('category'); $criteria->resetFacets(); $category = $context->getShop()->getCategory()->getId(); $criteria->addBaseCondition(new CategoryCondition([$category])); return $criteria; }
/** * @param null $categoryId * @param SearchBundle\Criteria $criteria * @throws Enlight_Exception * @return array|bool|mixed */ public function sGetArticlesByCategory($categoryId = null, SearchBundle\Criteria $criteria = null) { if (Enlight()->Events()->notifyUntil('Shopware_Modules_Articles_sGetArticlesByCategory_Start', array('subject' => $this, 'id' => $categoryId))) { return false; } $context = $this->contextService->getProductContext(); $request = Shopware()->Container()->get('front')->Request(); if (!$criteria) { $criteria = $this->storeFrontCriteriaFactory->createListingCriteria($request, $context); } $result = $this->getListing($categoryId, $context, $request, $criteria); $result = $this->legacyEventManager->fireArticlesByCategoryEvents($result, $categoryId, $this); return $result; }