2009-12-28 54 views
0

我在top.phtml這個代碼顯示在我的Magento商店我的菜單項:Magento的 - 刪除活動狀態從主頁

<div class="header-nav-container"> 
<div class="header-nav"> 
<h4 class="no-display"><?php echo $this->__('Category Navigation:') ?></h4> 
<ul id="nav"> 
<li <?php if(!Mage::registry('current_category')) { echo 'class="level0 active"'; } else { echo 'class="level0"'; } ?>><a href="<?php echo $this->getUrl('') ?>"><span><?php echo $this->__('Home') ?></span></a></li> 
<?php foreach ($this->getStoreCategories() as $_category): ?> 

<?php echo $this->drawItem($_category) ?> 
<?php endforeach ?> 
<li <?php if(!Mage::registry('current_category')) { echo 'class="level0 active"'; } else { echo 'class="level0"'; } ?>><a href="<?php echo $this->getUrl('catalogsale')?>"><span><?php echo $this->__('Sale Items') ?></span></a></li> 
</ul> 

</div> 

我有一個額外的li在其中顯示另一個頁面底部。我點擊「銷售商品」頁面時出現的問題:其鏈接變爲活動狀態,但主頁鏈接也一樣。如何防止主頁鏈接顯示爲活動狀態?

我添加了一個截圖顯示問題: Screenshot

回答

2

家庭和銷售項目的線條都爲沒有定義的當前類別時主動類別鏈接,通過代碼if(!Mage::registry('current_category'))。而不是檢查類別,檢查當前的控制器/操作。

這裏的URL功能的列表(用於獲取控制器/動作):

http://docs.magentocommerce.com/Mage_Core/Mage_Core_Model_Url.html

這樣的代碼應該工作。這取決於catalogsale是否是一個自定義控制器或行動,這取決於你的設置標識符:

if ($this->getRequest()->getControllerName() == 'catalogsale') 
// Output active class declaration 

/* Otherwise, try looking at the action name. */ 

if ($this->getRequest()->getActionName() == 'catalogsale') 
// Output active class declaration 
+0

我嘗試了這兩個但都沒有工作。 – a1anm 2009-12-28 22:55:49

0

最後我用一些JavaScript解決這個。我將此添加到新頁面:

<script type="text/javascript"> 
Event.observe(window, 'load', function() { 
$$('li.active').invoke('removeClassName','active'); 
$$('li.newmenu').invoke('addClassName','active'); 
}); 
</script> 

新的菜單項應該有一類'newmenu',以便上面的代碼可以工作。