2012-04-12 124 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>';