2012-04-12 126 views
0

我想在每个类别和子类别名称旁边放置一个小图像图标(不要将图像类别替换为仅在类别名称后面放置图像的图像) 。我已经尝试重写应用程序/核心/代码/法师/目录/座/ Navigation.phpMagento - 在顶部类别菜单名称旁边放置图像

我改变_renderCategoryMenuItemHtml之后referncing CATEGORY_ID Styles.css中我正要添加背景图片,其中代码为

$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>'; 

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

任何帮助表示赞赏。谢谢。

回答

1

为什么不使用CSS background-image?

加载了模板/目录/导航/ top.phtml,并添加一个新的class和id为每个级别的< 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; } 

然后,你需要找出每个图像的背景位置。

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