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

変更してみてください:

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 に答える
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 に答える