我正在創建一個Magento網站,其中客戶端對如何顯示側邊欄有特定要求。使用自定義塊類覆蓋Mage_Catalog_Block_Navigation使產品列表消失
的目錄類別的默認和目錄搜索結果將組成以不同的方式,這是我創造了自己的模塊,分別稱爲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>
,因爲我以爲我會失去的能力,使用我新創建的自定義塊類。
我在我的layout目錄的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>
現在將這些更改應用到代碼後,我的側欄完美地按預期工作。但是,現在的問題是,在目錄類別頁面中,目錄/產品列表根本沒有渲染,並且完全消失。請參閱下面的屏幕截圖。
我的猜測是,<class>Leafcutter_Catalog_Block</class>
已經被該模塊所取代。
所以我的問題是如何獲得這個側邊欄效果,你可以在截圖中看到,雖然我有我的產品清單,並且我滿足客戶端的要求,我呈現在目錄類別頁的邊欄一種方法使用我的Leafcutter_Catalog_Block_Navigation_Category_Navigation塊和搜索結果Leafcutter_Catalog_Block_Navigation_Search_Navigation塊?
在此先感謝。
感謝您的回答@Marius。我確實理解你的答案,我認爲這個問題的一部分已經得到解答,因爲我將不得不使用重寫。但是,我將Mage_Catalog_Block_Navigation設置爲默認值,我需要使用Leafcutter_Catalog_Block_Navigation_Category_Navigation覆蓋該類,以便搜索結果使用Leafcutter_Catalog_Block_Navigation_Search_Navigation類。所以說,在你的回答中,甚至可以做我已經說過的話,或者爲了完成這個任務而必須進行重大改寫。 – koramaiku