0

我已经看到了一些针对 Magento < 1.7 版本的功能请求的解决方案,但对于我正在使用的版本却没有。由于在 v1.7 中导航模板已从我top.phtml看到\app\design\frontend\THEME\TEMPLATENAME\template\page\html\topmenu.phtml的解决方案移至不再适用。

我只想能够在本机类别菜单下拉列表中输出类别图像(通过管理界面上传)。下拉结构和布局已完成并按我想要的方式工作,减去图像。

4

2 回答 2

1

您将需要覆盖/替换 Mage_Catalog_Model_Observer。

最简单的方法是将 Mage_Catalog_Model_Observer (app/code/core/Mage/Catalog/Model/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 块中可用。您还需要覆盖此块:将 app/code/core/Mage/Catalog/Block/Navigation.php 复制到

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

修改_getHtml()方法以根据需要将图像添加到标记中。

图片 url 将通过节点提供,如下所示:

$child->getImageUrl(); // or
$child->getData('image_url');
于 2012-09-21T15:34:10.123 回答
-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 文件夹。(app/code/core/Mage/Page/Block/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>';
于 2013-11-11T11:11:01.177 回答