Magento:“<! - ?php echo $ _menu? - >”的html来自哪里?

时间:2013-10-03 16:19:08

标签: magento

在magento page / html / topmenu.html文件中生成菜单项(即在后端创建的类别) 我用twitter bootstrap css framenwork设计这些菜单。 并使用

生成菜单项
<ul id="nav">
        <?php echo $_menu ?>
</ul>

我在哪里可以修改<li>

生成的<?php echo $_menu ?>代码类

2 个答案:

答案 0 :(得分:5)

顶层菜单是在块类中生成HTML的少数几个区域之一。

确切的文件是app/code/core/Mage/Catalog/Block/Navigation.php

在此文件中查找_renderCategoryMenuItemHtml方法,该方法生成菜单的大部分HTML。

要为所有菜单项添加新类,您可以覆盖此块并修改方法。

  1. app/code/core/Mage/Catalog/Block/Navigation.php复制到app/code/local/Mage/Catalog/Block/Navigation.php

  2. 查找以下代码(_renderCategoryMenuItemHtml函数内部)

    if ($hasActiveChildren) {
         $classes[] = 'parent';
    }

  3. 在此之后,添加以下内容:

    $classes[] = 'mynewclass';
    

  4. 保存文件,刷新所有Magento缓存。

答案 1 :(得分:0)

我对Magenta的开发还很陌生,在阅读了这个q&amp; a之后我花了一段时间才找到找到正确文件的位置,这个文件负责顶级菜单的形状,因为至少在当前版本中(1.7) .0.2)它不是app/code/core/Mage/Catalog/Block/Navigation.php。相反它是app/code/core/Mage/Page/Block/Html/TopMenu.php。在文件内部和Mage_Page_Block_Html_Topmenu内部,有一个_getHTML()方法,您可以根据需要进行更改。