Questions tagged «layered-navigation»

分层导航使您可以轻松地根据类别,价格范围或任何其他可用属性查找产品。

2
如何在Magento 2分层导航中实现多类别过滤器
我正在为分层导航实现多个类别过滤器。我正在按我的要求获取结果,但是集合大小出错了,仍然与父类别集合大小相同。 还有其他方法可以实现此功能。 我修改了以下代码: public function apply(\Magento\Framework\App\RequestInterface $request) { $categoryId = $request->getParam($this->_requestVar) ?: $request->getParam('id'); if (empty($categoryId)) { return $this; } $this->dataProvider->setCategoryId($categoryId); $category = $this->dataProvider->getCategory(); **$this->getLayer()->getProductCollection()->addCategoryFilter($category);** if ($request->getParam('id') != $category->getId() && $this->dataProvider->isValid()) { $this->getLayer()->getState()->addFilter($this->_createItem($category->getName(), $categoryId)); } return $this; } 更换addCategoryFilter($category)用addCategoriesFilter('eq' => $categoriesArray); 但是,由于分层导航计数来自其他地方而不是产品集合。 想知道从哪里来。以及如何在其中应用多个类别过滤器?

2
更改分层导航的布局
我有一个分层的导航,客户想要<select/>字段而不是一长串链接。 我考虑过,如果过滤器的名称/ ID匹配,则只用观察者更改模板。 有更好的想法或建议吗?更改模板的替代方法,可能是覆盖/重写块,还是仅更改两个过滤器的块类? 什么事件用于更改模板? 然后,我遇到了与此处相同的问题/programming/14524791/magento-enable-or-disable-a-module-in-code/14529629,因为我有一个更改布局内容的观察者。这仅与主题相关。因此,在运行更新之前检查主题可能是一个好主意吗?

2
Magento 2:应用自定义产品折扣后,分层导航价格过滤器不起作用
我正在开发产品折扣模块。我是通过插件和观察者完成的。在产品页面和列表页面上都可以正常工作。但是价格过滤器无法根据更新的产品价格运行。 这是我用来自定义价格的代码。 供应商名称/模块名称/etc/di.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Catalog\Pricing\Price\FinalPrice"> <plugin name="custom_discount_catalog_pricing_price_finalprice" type="VendorName\ModuleName\Plugin\FinalPrice" /> </type> </config> VendorName / ModuleName / etc / events.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <event name='catalog_product_get_final_price'> <observer name='customdiscount_finalprice' instance='VendorName\ModuleName\Observer\ProcessFinalPrice'/> </event> </config> VendorName / ModuleName / Observer / ProcessFinalPrice.php <?php namespace VendorName\ModuleName\Observer; use Magento\Framework\Event\ObserverInterface; class ProcessFinalPrice implements ObserverInterface { …

3
自定义页面上的自定义集合的分层导航-magento2
我正在为自己的产品集合在magento2中获取分层导航。我已经在自定义页面上获取了自定义集合,需要显示分层导航。试图适应这种 magento1解决方案,但步伐遥遥无期。 任何想法我怎么能在magento2中实现它。我到目前为止所做的如下: 在我的自定义页面上扩展了Catalog ListProduct块,以获取自定义产品列表。 class View extends \Magento\Catalog\Block\Product\ListProduct { public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Data\Helper\PostHelper $postDataHelper, \Magento\Catalog\Model\Layer\Resolver $layerResolver, CategoryRepositoryInterface $categoryRepository, \Magento\Framework\Url\Helper\Data $urlHelper, array $data = [], \Custom\LayerNavigation\Model\Layer $testlayerobj ) { parent::__construct($context,$postDataHelper,$layerResolver, $categoryRepository,$urlHelper,$data); $this->_coreRegistry = $context->getRegistry(); $this->_testlayer = $testlayerobj; } protected function _getProductCollection() { if ($this->_productCollection === null) { $this->_productCollection …

3
Magento 1.9.2添加图层导航以进行高级搜索
我已经按照以下3个步骤进行了高级搜索层导航,但是它不起作用。任何想法/建议或如何在高级搜索中实现图层导航? 1)在我们的local.xml下的catalogsearch_advanced_result标记下添加。 <reference name="left"> <block type="catalogsearch/layer" name="catalogsearch.leftnav" after="currency" template="catalog/layer/view.phtml"/> </reference> 2)使用覆盖重写catalogsearch / model / Layer.php的prepareProductCollection函数 public function prepareProductCollection($collection){ if(Mage::helper('catalogsearch')->getQuery()->getQueryText())//for normal search we get the value from query string q=searchtext return parent::prepareProductCollection($collection); else{ $collection->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()); /** * make sure you cross check the $_REQUEST with $attributes */ $attributes = Mage::getSingleton('catalog/product')->getAttributes(); Mage::log(print_r($_REQUEST,1)); foreach($attributes …



1
Magento 2-具有分层导航和分页的所有产品页面
我想创建一个与所有的产品页面filters,toolbar,pagination。 我可以通过使用名称创建一个新类别All Products并为其分配所有产品来做到这一点。但是我想这不是一个好方法,好像每次将新产品添加到网站时,也应该将其添加到“所有产品”类别中。人为错误的可能性很大。 有没有一种方法可以用根目录类别调用类别页面?喜欢来自ID: 2 如果有人不想为我编写代码是可以的,但是如果有人可以帮助我找到一种做到这一点的方法,那就太好了。

1
Magento 2:分面数据如何用于分层导航?
我已经为类别页面上的自定义过滤器创建了模块,除分层导航中的价格范围外,其他所有功能都正常运行。 请任何人都可以向我解释getFacetedData('price')在magento2中的工作方式 $productCollection->getFacetedData('price'); 此功能为我提供的价格范围基于默认产品集合,而不是基于我的过滤集合。 仅供参考:我已经过滤了以下集合, $productCollection = $layer->getProductCollection() ->clear() ->addAttributeToSelect(['name','price']) ->addAttributeToFilter('sku', array('in' => ['sku1','sku2']));

1
向自定义页面添加分层导航块
在Magento中,分层导航块在产品列表页面中可以很好地工作。 如何将此块成功复制到自定义页面,其中有自定义产品列表? 注意:仅将块添加到XML,然后调用它getChildHtml('blockname')并不能解决问题。

6
在分层导航中隐藏或删除“类别”过滤器
我正在努力从分层结构中删除“类别”过滤器,因为我的新网站中已经有了“类别”下拉菜单,因此这只会浪费空间(并使我的客户感到困惑) 我知道这个问题已经被问过很多遍并且已经解决了,但是我尝试每种解决方案都没有成功。我相信这与我用于网站的自定义模板有关。 在查看了local.xml文件(位于模板文件夹中)之后,我认为我应该解决以下问题: <reference name="product_list"> <block type="core/text_list" name="category-right" as="category-right" translate="label"> <label>Right Column</label> <block type="catalog/navigation" name="catalog.category" before="-" template="catalog/navigation/category_nav.phtml"/> <block type="catalog/layer_view" name="catalog.leftnav" after="catalog.category" template="catalog/layer/view.phtml"/> <block type="filterproducts/bestsellers_home_list" name="bestseller" template="catalog/navigation/best_sellers.phtml"/> <block type="core/template" name="right.permanent.callout" template="callouts/right_col.phtml"> <block type="cms/block" name="cms_images_block"> <action method="setBlockId"><block_id>category_right_block</block_id></action> </block> </block> </block> </reference> 第一种- 块类型 -应该是类别菜单(我很好)。第二种- 块类型 -在类别菜单的下面构建“ filter by”菜单,我很确定问题出在这里。 我相信我应该取消“ catalog.leftnav”内部的设置,即使我尝试添加以下代码: <catalog_category_layered> <reference …

2
自定义基于非属性的分层导航。这是唯一的方法吗?
今天,我已经提出了一个不基于属性的分层导航选项。它用于评级,因此前端可以显示漂亮的闪亮星星。 为此,我有: 创建一个模块 重写catalog_block_layer_view <blocks> <catalog> <rewrite> <layer_view>Bob_Catalog_Block_Layer_View</layer_view> </rewrite> </catalog> </blocks> 创建了一个名为Bob_Catalog_Block_Layer_View的类,该类扩展了Mage_Catalog_Block_Layer_View 创建了_initBlocks(),getFilters()和_prepareLayout()来覆盖父类方法。这些都在某个时刻调用父类,然后在返回的数据之前添加或附加额外的数据。 创建一个过滤器块Bob_Catalog_Block_Layer_Filter_Rating,它使用构造函数扩展Mage_Catalog_Block_Layer_Filter_Abstract,该构造函数设置filterModelName并调用其父对象,然后设置一个自定义模板,因为Mage_Catalog_Block_Layer_Filter_Abstract似乎在其构造函数中硬编码了模板名称。 创建一个模型Bob_Catalog_Model_Layer_Filter_Rating,该模型扩展了Mage_Catalog_Model_Layer_Filter_Abstract并实现了apply(),getName(),_ getItemsData()。 这一切都很好。分层导航中显示出漂亮的闪亮星星。 我有种直觉,我想念一些东西,因为当涉及到图层状态模板时,我必须在其中放置一个条件来拾取自定义评分过滤器并更改布局。另外,我需要做的一些事情(克隆产品集合,以便装入事件不会增加分页中的集合数量)使我感到自己一直在爬山。 因此,问题是,关于如何构建自定义的非属性支持的分层导航过滤器,您有任何更好的建议(或者是博客文章wink)吗? 谢谢阅读, 硅
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.