在Magento的多个地方显示一个版本的图像?

时间:2012-08-02 14:10:20

标签: templates magento

如果你去this page,你会注意到我在两个不同的地方显示相同版本的图像:一个用于云缩放,一个用于页面中间而不进行缩放。

我目前正在使用2行不同的代码来生成图像,然后返回它的URL,这基本上做同样的事情:

<?php /* for cloud zoom */ echo $this->helper('catalog/image')->init($_product, 'image')->constrainOnly(TRUE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->setWatermarkImageOpacity(0)->resize(600, null);?>

<?php /* for middle page */ echo $this->helper('catalog/image')->init($_product, 'image')->constrainOnly(TRUE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->setWatermarkImageOpacity(0)->resize(600, null);?>

这无疑是一个蹩脚的解决方案,因为:1)它占用更多的磁盘存储空间,因为有2个不同的图像文件基本上是相同的图像; 2)它显着减慢了页面加载速度,因为用户必须下载两个图像。

所以我的问题是如何在Magento的多个地方使用相同版本的图像?有没有办法让resize()方法返回图像的URL?

谢谢!

1 个答案:

答案 0 :(得分:0)

Mage_Catalog_Helper_Image有一个__toString()方法就是这样做的:

$imageUrl = $this->helper('catalog/image')->init($_product, 'image')->__toString();

HTH