我根据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 页面上包含产品列表有关,但我无法找到确切的问题。
对此的任何帮助将非常感激。
您需要将渲染图层的块添加到左列中。
如果你看进去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 块呈现的链接假设它们将回发到CategoryController
, not a CmsController
这将呈现您的 CMS 页面。这可能是问题,也可能不是问题,所以如果它不起作用,请在此处报告,我们可以尝试解决它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)