magento javascript:导航菜单中的void(0)

时间:2014-09-30 03:34:07

标签: javascript php magento

我一直在尝试将Javascript:void(0)添加到我的magento网站的导航栏很长一段时间。 我阅读了很多关于这个主题的文章,几乎所有文章都说我应该编辑

/app/code/core/Mage/Catalog/Block/Navigation.php或将其复制到本地文件夹结束编辑。

这是我遵循的流行方式之一;

To remove url, href functionality of the top menu categories, you can take the following steps:

Create some folder as this path: app/code/local/Mage/Catalog/Block
Copy file Navigation.php from app/code/core/Mage/Catalog/Block to 
app/code/local/Mage/Catalog/Block
Go to function _renderCategoryMenuItemHtml()
Replace this code

$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
$html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
$html[] = '</a>';
with this code

if($category->getLevel()== 2 && $hasActiveChildren) {
        $html[] = '<a href="[removed]void(0);"'.$linkClass.'>';
        $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>';
}

但它对我不起作用。奇怪的是,即使我删除了/app/code/core/Mage/Catalog/Block/Navigation.php,导航菜单也能正常工作。如果得到工作代码我不知道。

也许你有一个可以帮助我的想法。我只想将Javascript:void(0)放到导航菜单中。

2 个答案:

答案 0 :(得分:0)

我觉得这是缓存或Magento编译器的问题。我建议你从magento admin执行以下步骤。

  1. 转到admin->System->Cache Management并清除/清除所有缓存

  2. 转到admin->System->Tools->Compilation。检查编译是否已启用然后将其禁用并再次清除缓存并运行编译过程

答案 1 :(得分:0)

我也想解决这个问题,我认为问题在于您链接的代码仅适用于1.7而不适用于1.9?

我提出的解决方案

Topmenu.phpapp\code\core\Mage\Page\Block\Html复制到app\code\local\Mage\Page\Block\Html替换第131行:

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

        if ($child->hasChildren()) {
            $html .= '<li ' . $this->_getRenderedMenuItemAttributes($child) . '>';
            $html .= '<a href=\'javascript:void(0);\'><span>'
                . $this->escapeHtml($child->getName()) . '</span></a>';
        }
        else{

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

希望这有帮助。