0

我在 Magento 商店中使用Fishpigs Wordpress 集成模块。当我将其设置为使用自定义 Wordpress 菜单(我在 Wordpress 中设置了一些类别层次结构)时,如果您单击链接并处于“活动”页面上,它不会添加任何活动状态。经过一番挖掘,/app/code/community/Fishpig/Wordpress/Model/Menu/Item.php有以下内容:

public function isItemActive()
{
    return false;
}

所以看起来他们只是跳过了这一点?有人知道如何在这里设置活动状态吗?

4

3 回答 3

0

Replace the isItemActive function with following code in /app/code/community/Fishpig/Wordpress/Model/Menu/Item.php. This is working for me.

public function isItemActive() {
        $myblogUrl = Mage::helper('wordpress/abstract')->getBlogRoute();
        $mycurrentUrl = preg_replace('/\?.*/', '', Mage::helper('core/url')->getCurrentUrl());
        if (in_array($myblogUrl, explode("/", $mycurrentUrl))) {
            return true;
        } else {
            return false;
        }
    }
于 2015-04-07T06:09:57.433 回答
0

好的,这似乎可以完成工作,有点解决方法,但是嘿!

public function isItemActive()
{
    $currurl = Mage::helper('core/url')->getCurrentUrl();
    $linkurl = $this->getUrl();
    if(strstr($linkurl, $currurl)){
        return true;
    }
    else {
        return false;
    }
}

获取当前 url,获取博客 url,如果它们匹配,则将活动状态设置为 true。然后我使用了一些 jQuery 将父母的状态设置为活动,因为上面只设置了当前链接:

$('#nav li.nav-3 ul li.level1.active').parent().parent().addClass("active");

...其中 li.nav-3 是父博客链接

于 2013-04-18T09:22:37.557 回答
0

问题只是一个简单的失误。Magento 在所有 url 中使用“/”,因此 $currentUrl 永远不会匹配 $currentUrl。更正只是为了修剪“/”我知道响应较晚,但认为它可能对某人有所帮助。

public function isItemActive()
{
    $currentUrl = Mage::getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true));

    if (strpos($currentUrl, '?') !== false) {
        $currentUrl = substr($currentUrl, 0, strpos($currentUrl, '?'));
    }

    return $currentUrl === rtrim($this->getUrl(), '/');
}
于 2016-02-11T05:18:35.977 回答