0

我使用下面描述的方法为我的 CMS 页面添加带有活动类的链接。问题是,当我单击任何链接时,它会变为活动状态,但即使在单击其他一些链接后,该类仍然存在。因此,其余链接不会获得活动课程,而只是第一个打开的课程。知道问题出在哪里吗?

    <li class="level0 nav-2 parent <?php if (strpos(Mage::helper('core/url')->getCurrentUrl(),'custom') != false ) :?> active<?php endif;?>">
    <a href="<?php echo $this->getUrl('') . 'custom' ?>"><?php echo $this->__('TEXT OF MY LINK 1')  ?></a>
    </li>

    <li class="level0 nav-3 parent <?php if (strpos(Mage::helper('core/url')->getCurrentUrl(),'wholesale') != false ) :?> active<?php endif;?>">
    <a href="<?php echo $this->getUrl('') . 'wholesale' ?>"><?php echo $this->__('TEXT OF MY LINK 2')  ?></a>
    </li>

    <li class="level0 nav-4 parent <?php if (strpos(Mage::helper('core/url')->getCurrentUrl(),'faq') != false ) :?> active<?php endif;?>">
    <a href="<?php echo $this->getUrl('') . 'faq' ?>"><?php echo $this->__('TEXT OF MY LINK 3')  ?></a>
    </li>
4

2 回答 2

0

!=false您可以直接使用下面的代码,而不是检查。

<?php if (strpos(Mage::helper('core/url')->getCurrentUrl(),'custom')) :?> active<?php endif;?>

更新后,从系统->缓存管理中清除 Magento Admin 的所有缓存

或更新代码:

<?php if (Mage::getSingleton('cms/page')->getIdentifier() == 'custom') :?> active<?php endif;?>

试试这个,希望会有所帮助!

于 2013-10-17T10:08:41.147 回答
0

尝试改变:

if (strpos(Mage::helper('core/url')->getCurrentUrl(),'custom') != false )

if (strpos(Mage::helper('core/url')->getCurrentUrl(),'custom') !== false )

或者您可以获取当前的 CMS 页面标识符并进行相应检查,例如

$current_page = Mage::getSingleton('cms/page')->getIdentifier();
//and check & add class
<li class="level0 nav-2 parent <?php if($current_page == 'custom' ):?> active <?php endif;?>">
....
于 2013-10-17T07:25:56.080 回答