2014-05-07 73 views
1

我想讓我的topmenu鏈接在點擊它時激活。它包含Home, Specials(category name),About Us(cms page),FAQ(cms page) and Contact us。我希望當我點擊任何上層鏈接時,該鏈接將被激活。我爲此使用了一個「active-1」類。我希望有任何條件可以使頂部鏈接在點擊時處於活動狀態。 在topmenu.phtml頁面whick使用的代碼使你容易理解。如何使頂部鏈接在magento中點擊時處於活動狀態?

<style> 
.nav-container ul.somelink li.active-1 a{ background:#fa9c04;} 
</style> 
<?php $_menu = $this->getHtml('level-top') ?> 
<?php $page_route=Mage::app()->getRequest()->getRouteName(); ?> 
<?php $pageID = Mage::getBlockSingleton('cms/page')->getPage()->getIdentifier();?> 
<div class="nav-container"> 
<ul class="somelink"> 
<li <?php if($pageID=="home") echo 'class="active-1"';?> ><a href=" 
<?php echo Mage::getBaseUrl();?>">Home</a></li> 
<li <?php if($pageID=="specials.html") echo 'class="active-1"';?>><a href=" 
<?php echo $this->getUrl('specials.html') ?>">Specials</a></li> 
<li <?php if($pageID=="about-us") echo 'class="active-1"';?>><a href=" 
<?php echo $this->getUrl('about-us') ?>">About Us</a></li> 
<li <?php if($pageID=="faq") echo 'class="active-1"';?>><a href=" 
<?php echo $this->getUrl('faq') ?>">FAQ</a></li> 
<li <?php if($page_route=="contacts") echo 'class="active-1"';?>><a href=" 
<?php echo Mage::getBaseUrl();?>contacts">contact Us</a></li> 

</ul> 
</div> 

上面的代碼工作,但是當我清除緩存,然後選擇菜單將被激活,它是不是在那個時候主動我不得不一次又一次地清除緩存作出積極的菜單

+0

它不工作 –

+0

我用下面的代碼,它不工作,請幫助我,這是非常迫切 –

+0

普萊舍看到上面的編碼,並告訴我在那裏commiting錯誤 –

回答

0

您好我認爲這將有助於的U,試試這個,

<?php $_menu = $this->getHtml('level-top') ?> 
<?php $page_route=Mage::app()->getRequest()->getRouteName(); ?> 
<?php $pageID = Mage::getBlockSingleton('cms/page')->getPage()->getIdentifier();?> 
<div class="nav-container"> 
<ul class="somelink"> 
    <li <?php if($pageID=="home") echo 'class="active"';?> ><a href=" 
<?php echo Mage::getBaseUrl();?>">Home</a></li> 
    <li <?php if($pageID=="specials.html") echo 'class="active"';?>><a href=" 
<?php echo $this->getUrl('specials.html') ?>">Specials</a></li> 
    <li <?php if($pageID=="about-us") echo 'class="active"';?>><a href=" 
<?php echo $this->getUrl('about-us') ?>">About Us</a></li> 
    <li <?php if($pageID=="faq") echo 'class="active"';?>><a href=" 
<?php echo $this->getUrl('faq') ?>">FAQ</a></li> 
    <li <?php if($page_route=="contacts") echo 'class="active"';?>><a href=" 
<?php echo Mage::getBaseUrl();?>contacts">contact Us</a></li> 

</ul> 
</div> 

並添加活動類這樣.nav容器UL li.active(顏色:紅色);

+0

沒有它不工作。 ..i使用相同的編碼和我寫的風格.nav-container ul li.active { \t background:#fa9c04;}然後也沒有什麼東西來到 –

+0

PLZ點擊聯繫我們鏈接,讓我知道它是活躍或不活動.. ? – SKP

+0

plz在這裏給出正確的頁面標識符。<?php if($ pageID ==「」) – SKP

3

我通常從css開始。
所以有一個像你有它的菜單,但一些類添加到每個項目:

<?php $_menu = $this->getHtml('level-top') ?> 
<div class="nav-container"> 
    <ul class="somelink"> 
     <li><a class="home-link" href="<?php echo $this->getUrl('') ?>">Home</a></li> 
     <li><a class="specials-link" href="<?php echo $this->getUrl('specials.html') ?>">Specials</a></li> 
     <li><a class="about-link" href="<?php echo $this->getUrl('about-us') ?>">About Us</a></li> 
     <li><a class="faq-link" href="<?php echo $this->getUrl('faq') ?>">FAQ</a></li> 
     <li><a class="contact-link" href="<?php echo $this->getUrl('contacts') ?>">Contact Us</a></li> 

    </ul> 
</div> 

由於每個Magento的頁面有<body>元素在不同的類,你可以使用它。

將以下內容添加到您的css文件中。 (替換color:red與突出你的菜單項的屬性)

.cms-index-index .home-link { /* for homepage*/ 
    color:red; 
} 
.cms-specials .specials-link { /*for specials page */ 
    color:red 
} 
.... 

一般來說,訪問的每個頁面中的菜單,您可以通過身體的特定的類像這樣添加一行到CSS

.[body-class-here] .[link-to-be-selected-class-here] { 
    color:red 
} 

1.7+版本的替代方法是使用page_block_html_topmenu_gethtml_before事件直接在頂層菜單中添加菜單項。添加菜單項時,該項目支持「活動」屬性,您可以在其中放置代碼以使鏈接處於活動狀態。

See this for more info

相關問題