我正在做一个 Magento 网站,客户对他们希望如何显示侧边栏有特定要求。
目录类别默认值和目录搜索结果将以不同的方式组成侧边栏菜单项,我创建了自己的模块,分别使用名为 Leafcutter_Catalog_Block_Navigation_Category_Navigation 和 Leafcutter_Catalog_Block_Navigation_Search_Navigation 的块类。这两个类都扩展了默认的 Mage_Catalog_Block_Navigation。这是模块的 config.xml 文件:
<?xml version="1.0"?>
<config>
<modules>
<Leafcutter_Catalog>
<version>1.0</version>
</Leafcutter_Catalog>
</modules>
<global>
<blocks>
<catalog>
<rewrite>
<product_list_toolbar>Leafcutter_Catalog_Block_Product_List_Toolbar</product_list_toolbar>
<!--<navigation>Leafcutter_Catalog_Block_Navigation</navigation>-->
<product_list>Leafcutter_Catalog_Block_Product_List</product_list>
</rewrite>
<class>Leafcutter_Catalog_Block</class>
</catalog>
</blocks>
<helpers>
<catalog>
<rewrite>
<category>Leafcutter_Catalog_Helper_Category</category>
</rewrite>
</catalog>
</helpers>
</global>
如您所见,我使用了<class>Leafcutter_Catalog_Block</class>
声明,因为我不想使用<rewrite>Mage_Catalog_Block_Nagvigation</rewrite>
,因为我假设我将失去使用新创建的自定义块类的能力。
我还在我的布局目录中的 local.xml 文件中编写了一些额外的代码,以在它们各自正确的页面中容纳我新创建的块之一。
<catalog_category_default>
<reference name="product_list">
<action method="setColumnCount"><columns>3</columns></action>
</reference>
<reference name="left">
<block type="catalog/navigation_category_navigation" as="catalog.polar.vertnav" before="-" template="catalog/navigation/vertnav.phtml" />
</reference>
</catalog_category_default>
<catalog_category_layered>
<reference name="product_list">
<action method="setColumnCount"><columns>3</columns></action>
</reference>
<reference name="left">
<block type="catalog/navigation_category_navigation" as="catalog.polar.vertnav" before="-" template="catalog/navigation/vertnav.phtml" />
</reference>
</catalog_category_layered>
现在将这些更改应用于代码后,我的侧边栏可以正常工作。但是,现在的问题是,当在目录类别页面中时,catalog/product_list 根本没有呈现并且完全消失了。请看下面的截图。
我的猜测是<class>Leafcutter_Catalog_Block</class>
已经被那个模块取代了。
所以我的问题是我如何获得这个侧边栏效果,如您在屏幕截图中看到的那样,同时我有我的产品列表并且我满足客户的要求,即我使用我的以一种方式呈现目录类别页面的侧边栏Leafcutter_Catalog_Block_Navigation_Category_Navigation 块和搜索结果 Leafcutter_Catalog_Block_Navigation_Search_Navigation 块?
提前致谢。