无法找到topMenu - Magento

时间:2013-03-18 21:45:46

标签: magento

不确定这里发生了什么:

在我的page.xml中,我有以下代码:

<block type="core/text_list" name="top.menu" as="topMenu" translate="label">
    <label>Navigation Bar</label>
    <block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml" />
</block>

当我尝试使用一些小的HTML更改来更新page / html / topmenu.phtml时,它们不会被渲染?

当我删除此代码时,类别菜单消失,表明它是控制xml。

当我在同一主题模板中更新page / html / header.phtml时,它会呈现更改。

我还完全删除了这个模板文件,也删除了任何其他模板文件,可能会像默认的../../ topmenu.phtml一样 - 但是菜单渲染得很好,表明它没有使用这些模板文件? / p>

我也试过以同样的方式更新top.phtml而没有运气?

每次更新时都清除了缓存。

我必须遗漏一些东西 - 任何想法?

1 个答案:

答案 0 :(得分:3)

我的第一个猜测是catalog.topnav有另一个模块将其模板更改为page/html/topmenu.phtml以外的其他模块,或者您的系统有一个类重写page/html_topmenu指向一个没有'的类使用模板渲染导航。

如果您正在运行像Commerce Bug这样的调试工具,请检查顶部菜单块的模板集。

enter image description here

以及为page/html_topmenu

设置的课程

enter image description here

缺少调试工具,请向app/code/core/Mage/Page/Block/Html/Topmenu.php添加一些临时调试代码以测试正在设置的模板

#File: app/code/core/Mage/Page/Block/Html/Topmenu.php
protected function _toHtml()
{
    var_dump($this->getTemplate());
    var_dump($this->getTemplateFile());
    return parent::_toHtml();
}    

这将告诉您顶部导航使用的模板。如果没有输出,那么你的系统很可能会重写这个类。