1

有人可以帮我吗?我正在使用 Magento CE 1.8.0.0

magento 如何制作子类别不可点击的父菜单链接

我已经尝试了以下代码,它们也不适合我。app/code/core/Mage/Catalog/Block 或 Topmenu.php

if($category->getLevel()== 2 && $hasActiveChildren) {  
    $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.' onclick="return false;">';
    $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
    $html[] = '</a>';
} else {
    $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
    $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
    $html[] = '</a>';
} 

if ($category->getID()==[category ID]) {
    $linkClass = 'class="no-click"';
    $html[] = '<a href="javascript:void(0)"'.$linkClass.'>';
}
else{
    $html[] = '<a href="'.$this-&gt;getCategoryUrl($category).'"'.$linkClass.'>;';
}
4

4 回答 4

1

要使其仅在顶层工作:app/code/local/Mage/Page/Block/Html/Topmenu.php,第 126 行替换此代码

$html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'
            . $this->escapeHtml($child->getName()) . '</span></a>';

和 :

if ($child->hasChildren() && $childLevel == 0 ) {
        $html.= '<a href="#" ' . $outermostClassCode . ' onclick="return false;"><span>'
        . $this->escapeHtml($child->getName()) . '</span></a>'."\n";
    }
    else {
        $html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'
        . $this->escapeHtml($child->getName()) . '</span></a>';
    }
于 2014-04-24T08:29:16.310 回答
0

app/code/local/Mage/Page/Block/Html/Topmenu.php

在第 126 行附近。找到以下代码:

$html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'. $this->escapeHtml($child->getName()) . '</span></a>';

用。。。来代替:

if ($child->hasChildren() && $childLevel == 0) {
    $html.= '<a href="javascript::void();" ' . $outermostClassCode . ' onclick="return false;"><span>'. $this->escapeHtml($child->getName()) . '</span></a>'."\n";
} else {
    $html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'. $this->escapeHtml($child->getName()) . '</span></a>';
}
于 2014-04-08T13:24:40.817 回答
0

Titonja 在这里有答案:

app/code/local/Mage/Page/Block/Html/Topmenu.php

在第 126 行附近。找到以下代码:

$html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'
            . $this->escapeHtml($child->getName()) . '</span></a>';

用。。。来代替:

if ($child->hasChildren()) {
            $html.= '<a href="#" ' . $outermostClassCode . ' onclick="return false;"><span>'
            . $this->escapeHtml($child->getName()) . '</span></a>'."\n";
        }
        else {
            $html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'
            . $this->escapeHtml($child->getName()) . '</span></a>';
        }

清除缓存。它适用于 Magento 1.8.0.0

于 2013-10-21T07:20:47.937 回答
0

对于 1.6.2 版本的人,试试这个:

查找文件:/app/code/core/Mage/Catalog/Block/Navigation.php

替换第 268 行:

$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';

通过这个条件:

$myParentIds = array(3,6,10);
if (in_array($category->getID(), $myParentIds)){
$linkClass = ' class="no-click"';
$html[] = '<a href="javascript:void(0)"'.$linkClass.'>';
}
else{
$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
}

我希望这有帮助。

于 2014-02-21T23:17:19.933 回答