0
- 送我site.com/rims/?vehicleCode=P0000061000
- 如果我的代码默认筛选器不起作用过滤产品。
在我订阅的 $这 - > subscribeEvent的bootstrap.php中文件的安装功能( 'Enlight_Controller_Action_PostDispatchSecure_Frontend_Listing', 'onPostDispatchListing' ); 事件。之后,在onPostDispatchListing功能我:清单产品Shopware基于变量URL
/** @var \Enlight_Controller_Action $controller */ $controller = $args->getSubject(); $request = $controller->Request(); // defines the default shopware VIEWS directory. $view = $controller->View(); $view->addTemplateDir( __DIR__ . '/Views/responsive' ); $shop = Shopware()->Shop(); $sCategorystart = $shop->getCategory()->getId(); $sCategoryID = $this->getCategoryCurrent($sCategorystart); $oDb = Shopware()->Db(); $EngineCode = $request->getParam('sVehicle'); $query = "SELECT va.`articleID` FROM `s_vehicle_articles` as va INNER JOIN `s_articles_categories` as ac ON ac.articleID=va.articleID WHERE ac.categoryID=" . $sCategoryID; $query .= ($EngineCode) ? " AND va.`VehicleCodeID`= '" . $EngineCode . "'" : " "; $mResults = $oDb->fetchAll($query); $articleModule = Shopware()->Modules()->Articles(); $aProducts = array(); foreach ($mResults as $key => $value) { $article = $articleModule->sGetArticleById($value['articleID'], $sCategoryID); $aProducts[] = $article; } $view->sArticles = $aProducts;
的代码是否工作正常,产品被过滤,但默认筛选器不工作,如价格过滤器等。
谁能帮?
$ criteria = new Criteria(); $ criteria-> addCondition(new CategoryCondition([3])); //我的条件应该是我在URL中发送的代码。如何设置? $ context = $ this-> get('shopware_storefront.context_service') - > getShopContext(); $ service = $ this-> get('shopware_search.product_number_search'); /** @ var $ result ProductNumberSearchResult */ $ result = $ service-> search($ criteria,$ context); $ numbers = []; ($ result-> getProducts()as $ product){ $ numbers [] = $ product-> getNumber(); } –
@DragiPostolovski,你应该创建你自己的标准来实现ConditionInterface。但并不那么容易,你还应该添加你的模型(你是否注册了's_vehicle_articles'的模型)来搜索包查询。使用'modifyQuery'函数检查我的响应,这种方式很容易实现。 –