2012-09-20 66 views
1

我已经看到了一些针对Magento < 1.7版本的功能性请求的解决方案,但是我没有使用该版本。由于v1.7中的导航模板已从top.phtml移至\app\design\frontend\THEME\TEMPLATENAME\template\page\html\topmenu.phtml,我所看到的解决方案已不再适用。如何将类别图像/缩略图添加到Magento中导航> 1.7

我只希望能够在本机类别菜单下拉菜单中输出类别图像(通过管理界面上传)。下拉结构和布局完成并按我的需要运行,减去图像。

回答

1

您将需要重写/替换Mage_Catalog_Model_Observer。

最简单的方法是复制Mage_Catalog_Model_Observer(应用程序/代码/核心/法师/目录/型号/ Observer.php)到:

app/code/local/Mage/Catalog/Model/Observer.php 

然后,您可以修改:_addCategoriesToMenu()

将图像添加到数据中:

$categoryData = array(
    'image_url' => $category->getImageUrl(), // or thumbnail if you wanted. 
    'name' => $category->getName(), 
    'id' => $nodeId, 
    'url' => Mage::helper('catalog/category')->getCategoryUrl($category), 
    'is_active' => $this->_isActiveMenuCategory($category) 
); 

此数据将在导航块内部可用。您还需要重写此块:应用程序/代码/核心/法师/目录/座/ Navigation.php复制到

app/code/local/Mage/Catalog/Block/Navigation.php 

修改_getHtml()方法将图像添加到标记的要求。

图像URL将可通过该节点,就像这样:

$child->getImageUrl(); // or 
$child->getData('image_url'); 
+0

我不能让这个工作。你的建议没有任何回报哦,'getHtml()'方法现在位于'/ app/code/core/Mage/Page/Block/Html/Topmenu.php'中。我最接近的解决方案是在类别页面上输出缩略图,使用' cfx

-1

该解决方案是Magento的-1.8 *

在模型文件。 (/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

$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>'; 
相关问题