2010-07-20 78 views
1

嘿,我們正在運行Magento 1.4.0.1,並希望隱藏導航中的活動類別。當我們這樣做時,父類別的URL 404s但所有子類別的URL仍然有效。如何在不禁用URL的情況下隱藏Magento中的活動類別?

magentostore.ex/brands/company is valid 
magentostore.ex/brands is not 

我們想magentostore.ex /品牌指向一個頁面,但我們不希望有一個標籤說,在我們的頂級導航「品牌」。

我們如何隱藏父導航,同時保持它的活動?謝謝!

回答

3

非常小心地急於升級到1.4.1.0--有一些重大變化,特別是Sales_Order模塊。您與訂單相關的任何分機可能會中斷

一種選擇是在app/code/local下創建Mage_Catalog_Block_Navigation文件的版本(不要直接編輯核心!)並覆蓋drawItem函數以從導航中排除該類別。它需要編寫一些PHP,但複製/粘貼現有​​代碼並添加條件並不特別困難。

像這樣的事情在函數的頂部應該工作(記住,這個功能是遞歸的...並檢查您的正則表達式!!)

if(preg_match('/\b(brands)/i',$category->getName())!=0){ 
     return ''; 
    } 
+1

就是這樣。謝謝! – 2010-07-22 14:21:34

0

您是否嘗試過使用CMS並製作一個包含「品牌」的SEF URL標識符的頁面?如果我理解正確,那應該達到你想要的。

+3

這是一個好主意,但是當CMS頁面URL與已存在的頁面相同,Magento將爲已存在的頁面提供服務(即使其中的頁面未找到來自禁用類別)。 – 2010-07-21 18:51:47

1

嗯,這是一個cop-out,但我們從1.4.0.1升級到1.4.1.0,並且「Include in Navigation Menu」選項已返回到Category屬性。這解決了我們的問題。我們現在可以保持類別不會出現在頂層導航中,同時保留着陸頁的可能性。編輯:JD的解決方案是一個更好的解決方案。

相關問題