0

我的问题是如何将自定义属性分配为 list.phtml 文件中悬停图像的图像。

我已经完成了我的研究,并通过使用此代码在 list.phtml 上的网格视图中调用图像来让网站做我想做的事情

<a href="<?php echo $_product->getProductUrl() ?>"
   title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"
   class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135); ?>"
   width="135" height="135" 
   alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"
   onmouseover="this.src='<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135) ?>';"
   onmouseout="this.src='<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135) ?>';" />
</a>

如果将悬停图像指定为缩略图,则此方法有效。

我的问题是我正在使用这个扩展来导入我的所有产品,它不允许为基本、小和缩略图分配不同的图像。您必须使用相同的图像。(是的,我可以进入并单独选择每个图像并选择缩略图,但这不是我拥有的产品数量的选项)

好的,所以我所做的是为名为悬停图像的产品创建了一个自定义属性,将该列添加到 csv 文件中,嘿,它工作正常 - 悬停图像被分配给图像下的悬停图像选项,如下所示:

在此处输入图像描述

所以我的问题是我如何编辑上面的代码行,以便它调用新的“hover_image”属性而不是缩略图。我尝试将缩略图更改为“hover_image”,但网站崩溃。

请帮忙,我感觉很近,但不完全在那里。

4

1 回答 1

0

问题是您的属性“hover_image”未加载到您的类别页面上。要改变这一点,试试这个:

如果您不确定哪个最适合您,请转到任何模块配置 xml 文件 local.xml 在配置节点下添加这些行

<config>
    ...
    <frontend>
        <product>
            <collection>
                <attributes>
                    <hover_image/>
                </attributes>
            </collection>
        </product>
    </frontend>
    ...
</config>

由于“hover_image”还没有占位符,我们需要添加它。转到 skin/frontend/default/default/images/catalog/product/placeholder,在这里您可以找到普通图像副本 image.jpg 的占位符并将副本重命名为“hover_image.jpg”

之后,清除缓存。如果您使用的是产品平面索引,请重新索引它。然后你应该可以使用

<?php echo $this->helper('catalog/image')
    ->init($_product, 'hover_image')
    ->resize(135) ?>

如果没有,请告诉我

于 2013-09-26T13:20:48.400 回答