3

皆さんにもう 1 つ質問があります :P

製品グリッド ビューで、マウスをホバーしたときに画像を変更したいと考えています。切り替えたい画像にも「戻る」というラベル名が必要です。

私はほとんどそれを持っています..:P

media.phtml でこのコードを使用すると:

<?php $imageByLabel = $_product->getMediaGalleryImages()->getItemByColumnValue('label', 'back');?>
<?php echo $this->helper('catalog/image')->init($_product, 'image', $label->getFile())->resize(235, 350);?>

http://www.mywebsite.com/product/images/image1 画像のソース属性でこれを使用すると、正しい画像が表示されます。

しかし、catalog/product/list.phtml でこのコードを使用すると、次のエラーが発生します。

致命的なエラー: 95 行目の C:\Development\FabriqMagento\app\design\frontend\default\fabriq\template\catalog\product\list.phtml の非オブジェクトに対するメンバー関数 getItemByColumnValue() の呼び出し

PS: 95 行目は次の行です。

<?php $imageByLabel = $_product->getMediaGalleryImages()->getItemByColumnValue('label', 'back');?>

どんな助けでも大歓迎です:)

4

2 に答える 2

5

コードを確認すると、$imageByLabel何もしていないので必要ありません。

試す:

<?php echo Mage::getModel('catalog/product')->load($_product->getId())->getMediaGalleryImages()->getItemByColumnValue('label','black')->getFile();  ?>

からlist.phtml

于 2012-11-01T01:30:26.617 に答える
1

list.phtml ではない場合:

$_item = $this->getItem();
$_product = $_item->getProduct();

@Francis Kim - メソッド - resiz も使用

$_image = Mage::getModel('catalog/product')->load( $_product->getId() )->getMediaGalleryImages()->getItemByColumnValue('label','FRONTSHOP');
echo $this->helper('catalog/image')->init($_product, 'thumbnail', $_image->getFile())->resize(75);

私が見つけた唯一の問題は、除外値で機能しないことです

于 2015-02-20T10:05:21.270 に答える