Collections 自定义产品集合上的Magento分层导航

Collections 自定义产品集合上的Magento分层导航,collections,magento,navigation,product,layered,Collections,Magento,Navigation,Product,Layered,我一直在为Magento(1.8.0.0版)开发一个自定义模块,该模块显示特定产品的相关产品列表 为了实现这一点,我通过覆盖Mage\u Catalog\u Block\u Product\u List类创建了自己的模块 基本上是这样的: 从控制器中,我捕获产品实体id,并将产品存储在注册表中,以便在名为list.php的自定义编写块中使用 以下是填充产品集合的方法: protected function _getProductCollection() { if (is_null($th

我一直在为Magento(1.8.0.0版)开发一个自定义模块,该模块显示特定产品的相关产品列表

为了实现这一点,我通过覆盖
Mage\u Catalog\u Block\u Product\u List
类创建了自己的模块

基本上是这样的:

从控制器中,我捕获产品
实体id
,并将产品存储在注册表中,以便在名为list.php的自定义编写块中使用

以下是填充产品集合的方法:

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        $prod = Mage::registry('chosenproduct');
        $this->_productCollection = $prod->getRelatedProductCollection()
            ->addAttributeToSelect('required_options')
            ->addAttributeToFilter(array(array('attribute'=>'accessory_manufacturer','neq'=>false)))
            ->addAttributeToSort('position', 'asc')
            ->addStoreFilter()
            ->setPageSize(30)
            ->setCurPage(1);
        ;

        $this->_addProductAttributesAndPrices($this->_productCollection);
        Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($this->_productCollection);
        $this->setProductCollection($this->_productCollection);
    }

    return $this->_productCollection;
}
我还在自定义模块的layout.xml中添加了以下内容,以确保分层导航显示:

<reference name="left">
        <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
    </reference>

分层导航显示,但它似乎将所有产品作为集合,而不是我在上面添加的方法中使用的自定义集合

我还知道我可以使用这个
$layer=Mage::getSingleton('catalog/layer')获得目录/层

layer类还有一个名为prepareProductCollection和setCollection的方法,但由于某些原因,我无法让它工作

有什么帮助吗

基本上,我希望对自定义集合中的产品进行分层导航


谢谢,

我刚刚实现了我想要的。我已经覆盖了
Mage\u Catalog\u Model\u层
类和
Mage\u Catalog\u Model\u类别

现在两者都有一个名为$\u customCollection的新变量:
protected$\u customProductCollection

我在两个类中都覆盖了getProductCollection(),并在方法的开头添加了以下内容:

if(isset($this->_customProductCollection)){
        return $this->_customProductCollection;
    }
我还有一个方法,允许我在这两个类中设置这个“customProductCollection”。设置后,分层导航/类别的其余数据将基于此集合


)()

这个设置方法是什么?从哪里调用它?