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

このデータは、ナビゲーション ブロック内で利用できるようになります。また、このブロックをオーバーライドする必要があります: 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 フォルダーに移動します。(アプリ/コード/コア/メイジ/ページ/ブロック/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 に答える