2010-07-20 77 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的解决方案是一个更好的解决方案。

相关问题