Magento - 将图像放在顶部类别菜单名称旁边

时间:2012-04-12 17:17:31

标签: php html css magento

我想在我的每个类别和子类别名称旁边放一个小图像图标(不用类别名称替换类别名称,只是在类别名称后放置一个图像)。我已经尝试重写app / core / code / Mage / Catalog / Block / Navigation.php

我更改了_renderCategoryMenuItemHtml,然后在styles.css中引用category_id我将要添加代码所在的背景图片

 $htmlLi .= '>';
$html[] = $htmlLi;

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

$htmlLi .= '>';
$html[] = $htmlLi;

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

但是工作。我相信很多人可能想在类别名称后面显示一个小缩略图。但只是不知道任何简单或直接的方式。

感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:1)

为什么不使用CSS background-image?

加载模板/ catalog / navigation / top.phtml并为每个级别添加新的类或ID&lt; li>项目,可能是这样的:

class="nav-<?php echo $_category->getName() ?>"

然后将这些类添加到CSS中,即:

.nav-shoes { background: url(images/nav-shoes.png) no-repeat; }

甚至更好,使用您想要使用的所有图像构建精灵图像:

[class^="nav-"] { background: url(images/sprite.png) no-repeat; }
.nav-shoes { background-position: 10px 10px; }

然后你需要弄清楚每张图片的背景位置。

答案 1 :(得分:0)

将此解决方案用于Magento -1.8。*

转到intp模型文件。 (/app/code/core/Mage/Catalog/Model/Observer.php)

在函数名称中:_addCategoriesToMenu

更新以下代码

  $categoryData = array( 
        'name' => $category->getName(),
        'id' => $nodeId,
        'url' => Mage::helper('catalog/category')->getCategoryUrl($category),
        'is_active' => $this->_isActiveMenuCategory($category),
        'thumbnail' => Mage::getModel('catalog/category')->load($category->getId())->getThumbnail()

    );

然后进入Html文件夹。 (应用程序/代码/核心/法师/页/块/ HTML / Topmenu.php)

在函数名称的第128行:_getHtml

更新以下代码行

    if($childLevel < 1 ){
        $urls = Mage::getBaseUrl('media').'catalog/category/'.$child->getData('thumbnail');
        $img = '<img src="'.$urls.'" />';
    }

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