magento如何制作子菜单无法点击的父菜单链接

时间:2013-10-20 04:41:32

标签: magento menubar

有人可以帮帮我吗?我使用的是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 个答案:

答案 0 :(得分: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>';
    }

答案 1 :(得分:0)

Titonja的答案如下:

应用程序/代码/本地/法师/页/块/ 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

答案 2 :(得分: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.'>';
}

我希望这会有所帮助。

答案 3 :(得分: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>';
}