5

我根据 Mage_Catalog_Block_Product_List 制作了自己的产品列表页面:

应用程序/代码/本地/法师/目录/块/产品/Special.php:

class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List
{      
    /* Original contents */

    /* Here I call addAttributeToFilter on product collection, and then... */
    return $this->_productCollection; 
}

我将其包含在中心列的 CMS 页面中:

<reference name="content">
    <block type="catalog/product_special" template="catalog/product/list.phtml" />
</reference>

问题是:产品列表显示得很好,但我的左栏中没有分层导航。

这很奇怪,因为我使用的模板与普通列表完全相同。

我检查了几件事:

  • Mage_Catalog_Block_Product_Special 只是一个代理类。这行不通。即使我在我的 CMS 页面上使用块类型“catalog/product_list”,我也不会获得分层导航。
  • 没有覆盖关键核心类的扩展。
  • 我还尝试创建自己的模块并将其列在例如“mycatalog”下。这导致完全相同的问题。

我感觉这与试图在 CMS 页面上包含产品列表有关,但我无法找到确切的问题。

对此的任何帮助将不胜感激。

4

4 回答 4

4

您需要将呈现图层的块添加到左列中。

如果您查看catalog.xml,您将看到该catalog_category_layered节点包括以下内容:

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

因此,将其添加到您的 CMS xml 布局更新中,这应该会在您的 CMS 页面上显示图层块。

如果您在单击其中一个可过滤属性时遇到产品列表未过滤的问题,这可能是因为 Layer_View 块呈现的链接假定​​它们将回发到 a CategoryController,而不是 aCmsController将呈现您的 CMS页。这可能是也可能不是问题,所以如果它不起作用,请在此处报告,我们可以尝试解决它。

于 2011-03-08T09:21:02.990 回答
0

就我个人而言,我会有一个包含所有产品的隐藏类别,并使用脚本将其更新为所有产品。该脚本可以使用 API 完成,是的,速度很慢,但它会在一定水平的 SKU 计数下及时工作。

于 2011-03-04T21:05:07.167 回答
0

图层导航包含在类别视图中。您应该包括类别使用的导航部分,因此尝试插入

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

<reference name="content">

我不确定,但如果它不起作用,它应该可以帮助你理解问题

于 2011-03-07T19:26:03.073 回答
0

检查以下页面(他们遇到了同样的问题)

http://www.exploremagento.com/magento/some-custom-blocks-to-help-you-show-products.php http://www.chilipepperdesign.com/2009/03/23/magento-how-to -list-all-the-products-in-a-single-category-in-a-sidebar-block

于 2011-03-10T00:36:58.557 回答