Magento哪个文件有导航菜单栏的代码?

时间:2013-07-26 11:09:27

标签: php magento

我想编辑magento导航菜单条形码,但我不知道哪个文件有菜单条形码请帮忙怎么编辑该文件并更改请帮助

i want to edit menu magento provide menu like
<ul>
    <li><a href=''>Home</a></li>
    <li><a href=''>Contact Us</a></li>
    <li><a href=''>Abouty Us</a></li>

</ul>

i want to edit it like

<ul>
    <li><img src=''/><a href=''>Home</a></li>
    <li><img src=''/><a href=''>Contact Us</a></li>
    <li><img src=''/><a href=''>Abouty Us</a></li>

</ul>

我想将图像添加到菜单中并创建高级菜单

5 个答案:

答案 0 :(得分:13)

您应该覆盖Mage_Page_Block_Html_Topmenu类中的_getHtml()方法。

以下是步骤:

  1. 创建你的app / code / local / Mage / Page / Block / Html / Topmenu / Custom.php
  2. 放入class Mage_Page_Block_Html_Topmenu_Custom extends Mage_Page_Block_Html_Topmenu
  3. 从app / code / code / Mage / Page / Block / Html / Topmenu.php复制_getHtml()方法并根据需要自定义
  4. 编辑您的app / design / frontend / your_theme / default / layout / page.xml并将<block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml"/>替换为<block type="page/html_topmenu_custom" name="catalog.topnav" template="page/html/topmenu.phtml"/>
  5. 的利润!

答案 1 :(得分:5)

你好朋友你也可以看到导航菜单栏进入navigation.php文件

\应用\代码\核心\法师\目录\块\ navigation.php

该文件具有导航菜单条形码

答案 2 :(得分:4)

app\design\frontend\default\yourtheme\template\page\html\topmenu.phtml

答案 3 :(得分:2)

根据您的Magento版本,此帖子可能已过期,因此我会更新。看起来Magento因为这个原因而进行了更改,允许自定义nav html。

如果你看看第80行,请参阅Mage_Page_Block_Html_Topmenu

    if ($renderer = $this->getChild('catalog.topnav.renderer')) {
        $renderer->setMenuTree($this->_menu)->setChildrenWrapClass($childrenWrapClass);
        $html = $renderer->toHtml();
    } else {
        $html = $this->_getHtml($this->_menu, $childrenWrapClass);
    }

它检查是否定义了渲染块,如果没有,则使用不建议使用的构建nav html的方法

/**
     * Recursively generates top menu html from data that is specified in $menuTree
     *
     * @param Varien_Data_Tree_Node $menuTree
     * @param string $childrenWrapClass
     * @return string
     * @deprecated since 1.8.2.0 use child block catalog.topnav.renderer instead
     */
    protected function _getHtml(Varien_Data_Tree_Node $menuTree, $childrenWrapClass)

在主题的local.xml中尝试此块语句。

<default>
    <reference name="catalog.topnav">
        <block type="page/html_topmenu_renderer" name="catalog.topnav.renderer" template="page/html/topmenu/renderer.phtml"/>
    </reference>
</default>

然后你可以将模板页面/ html / topmenu / render.phtml从rwd主题下拉到你自己的主题中,并进行自定义而不必重写块。

答案 4 :(得分:1)

好的,替换这个

<li>
<a href="<?php echo $this->getBaseUrl() . $page['identifier']; ?>"><?php      echo $page['title']; ?></a>
</li>

BY

 <li><img src=''/>
<a href="<?php echo $this->getBaseUrl() . $page['identifier']; ?>"><?php      echo $page['title']; ?></a>
</li>

好的,这是新代码,用这个

替换整个页面代码
<?php $_menu = $this->getHtml('level-top') ?>
 <?php if($_menu): ?>

 <?php $identifier = Mage::getSingleton('cms/page')->getIdentifier() ?>

 <?php $collection = Mage::getModel('cms/page')->getCollection()-     >addStoreFilter(Mage::app()->getStore()->getId());?>
 <?php  $collection->getSelect()
->where('is_active = 1'); ?>
<ul class="main-menu cf">
 <?php foreach ($collection as $page): ?>
<?php $PageData = $page->getData(); ?>

 <?php //make the current page active?>
<?php if($identifier == $PageData['identifier'] && $identifier != 'no-route'){ $c = 'class="active"';}else{ $c = '';}?>
<?php if($PageData['identifier']!='no-route' && $PageData['identifier']!='enable-cookies' && $PageData['identifier']!='home2') { ?>
 <li><img src=''/>
 <a <?php echo $c;?> href="<?php echo $this->getBaseUrl() . $page['identifier']; ?>"><?php       echo $page['title']; ?></a>
 </li>
 <?php } ?>
 <?php endforeach; ?>
 </ul>

根据您的需要设计样式。通过替换类