我想在我的每个类别和子类别名称旁边放一个小图像图标(不用类别名称替换类别名称,只是在类别名称后放置一个图像)。我已经尝试重写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>';
但是工作。我相信很多人可能想在类别名称后面显示一个小缩略图。但只是不知道任何简单或直接的方式。
感谢任何帮助。感谢。
答案 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>';