0

我正在用 magento 创建一个网站。

所以我为我的产品添加了一个新的媒体图像属性。我想为我的主页使用特定图像,但一些产品没有此图像。

所以我创建了一个名为 list-homepage.phtml 的新 list.phtml 文件。

所以我目前正在list.phtml中的产品集合中执行此操作。

$product=Mage::getModel('catalog/product')->load($_product->getId());

我再次从上方加载产品,并测试该产品是否具有新的图像属性

<?php if ($product->getMaleFemaleImage()){  ?>
      <img src="<?php echo $this->helper('catalog/image')->init($product, 'male_female_image')->setQuality(100)->resize($imgSize); ?>" width="<?php echo $imgSize ?>" height="<?php echo $imgSize ?>" alt="<?php echo $this->stripTags($this->getImageLabel($product, 'male_female_image'), null, true) ?> " />
<?php }else{ ?>
     <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->setQuality(100)->resize($imgSize); ?>" width="<?php echo $imgSize ?>" height="<?php echo $imgSize ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
<?php }?>

这可行,但正如您从上面看到的,我必须再次加载产品,我不想这样做。有什么方法可以访问我创建的 male_female_image 属性。

4

1 回答 1

4

看看@Magento - 将媒体库属性添加到产品平面表

打开 app/design/frontend/default/yourtheme/layout/catalog.xml

<catalog_category_layered translate="label"><catalog_category_default translate="label">找到下面的行

 <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
 <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
 <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">

和(添加<action method="addAttribute">....)

<block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
add -->   <action method="addAttribute"><name>MaleFemaleImage</name></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">

阅读更多 @

于 2012-11-15T12:48:02.223 回答