Magento 1.7.0.2 List.phtml图像悬停

时间:2013-09-26 08:49:35

标签: php magento attributes

我的问题是如何将自定义属性指定为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>

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

我的问题是我使用this extension导入我的所有产品,并且它不允许为base,small和thumbnail分配不同的图像。你必须使用相同的图像。 (是的,我可以单独选择每个图像并选择缩略图,但这不是我拥有的产品数量的选项)

好的,我所做的就是为名为hover image的产品创建了一个自定义属性,将列添加到csv文件中,并且它可以正常运行 - 悬停图像被分配给图像下的Hover Image选项,如下所示:

enter image description here

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

请帮助,我感觉如此接近,但不是那么。

1 个答案:

答案 0 :(得分:0)

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

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

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

如果不是,请告诉我