Fishpig Magento / Wordpress集成 - 附加WordPress自定义菜单不会设置活动状态

时间:2013-04-17 16:35:27

标签: wordpress magento fishpig

我在Magento商店中使用Fishpigs Wordpress integration module。当我将其设置为使用自定义Wordpress菜单(我在Wordpress中设置了一些类别层次结构)时,如果您单击了一个链接并且处于“活动”页面,则不会添加任何活动状态。在深入研究之后, /app/code/community/Fishpig/Wordpress/Model/Menu/Item.php 具有以下内容:

public function isItemActive()
{
    return false;
}

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

3 个答案:

答案 0 :(得分:0)

好吧,这似乎可以完成这项工作,有点变通但是嘿!

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

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

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

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

答案 1 :(得分:0)

将isItemActive函数替换为/app/code/community/Fishpig/Wordpress/Model/Menu/Item.php中的以下代码。这对我有用。

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;
        }
    }

答案 2 :(得分:0)

问题只是一个简单的错过.Magento在所有网址中都使用了“/”,$ 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(), '/');
}