11

我想编辑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>

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

4

5 回答 5

13

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

以下是步骤:

  1. 创建您的应用程序/代码/本地/法师/页面/块/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. 利润!
于 2014-05-30T10:46:54.383 回答
6

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

\app\code\core\Mage\Catalog\Block\navigation.php

该文件有一个导航菜单条码

于 2013-08-07T04:40:17.127 回答
3
app\design\frontend\default\yourtheme\template\page\html\topmenu.phtml
于 2013-07-26T11:13:45.373 回答
2

根据您的 Magento 版本,这篇文章可能已经过时,所以我会更新。看起来 Magento 正是出于这个原因进行了更改,以允许自定义该导航 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);
    }

它检查是否定义了渲染块,如果没有,则使用不推荐使用的构建导航 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主题下拉到你自己的主题中,并进行自定义,而无需重写块。

于 2016-04-26T15:58:45.017 回答
1

好的,换这个

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

经过

 <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>

根据您的需要对其进行样式设置。通过替换类

于 2013-07-26T11:31:57.187 回答