我在Magento商店中使用Fishpigs Wordpress integration module。当我将其设置为使用自定义Wordpress菜单(我在Wordpress中设置了一些类别层次结构)时,如果您单击了一个链接并且处于“活动”页面,则不会添加任何活动状态。在深入研究之后, /app/code/community/Fishpig/Wordpress/Model/Menu/Item.php 具有以下内容:
public function isItemActive()
{
return false;
}
所以看起来他们刚刚跳过这一点?有人知道如何在这里设置活动状态吗?
答案 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(), '/');
}