2010-07-09 111 views
3

我已经添加了名称和标签的图片属性,例如新图片,new_image。Magento自定义图像属性。我如何进入前端?

如何从例如view.phtml?我认为它会像

<?php 
    echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150); 
?> 

但是,这是抛出一个错误。

有没有人知道这样做的正确方法?

非常感谢。

+0

请选择最正确的答案,我的意思是你的问题也有点靠不住。根据我的理解,自定义图像属性将是另一个模型中未链接到产品的图像。 – surfer190 2016-11-07 08:34:44

回答

1

Schonkton,我可以验证你的代码在catalog/product/view.phtml中工作得很好。我认为你将图像属性添加到了属性组...附带说明的是,回声的输出将传递一个图像链接,因此需要将其包含在图像标签中。

echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150); 
0

该初始化调用只有几个有效的字符串值:image,small_imagethumbnail,对应于这些图像的产品属性。如果您想以这种方式调用图像,则需要将new_image设置为管理面板中的这三个图像之一。

否则,请在产品上寻找“图库”方法,因为这些方法会为您提供所有图像以供迭代。

谢谢, 乔

+0

你好,谢谢你的回复。 那么,你只能以这种方式调用图像,small_image和缩略图? 我添加了属性new_image作为类型媒体图像。 什么是在view.phtml中获取图像的最佳方式? 此外,我将如何从更多的视图/画廊排除图像?具体来说,new_image? 非常感谢, 亚当 – Schonkton 2010-07-12 08:47:55

3

我在列表中显示了同样的问题,但终于找到了一种方法来解决它。 我发现该属性仅在产品视图页面中显示,不在列表页面中。 所以我所做的就是再次加载产品为:

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

当我用$product而不是显示图像中$_product,即

helper('catalog/image')->init($product, 'new_image')->resize(150, 150); ?> 

它的工作。

我知道这不是一个好办法,但我不知道其他任何方式。也许我们可以做一些选择列表中的属性。

3

对你来说答案太晚了,但它可能对别人有帮助。以下回答适用于产品查看页面。

首先检查该属性是否具有某种价值。

$isNewImage =$_product->getResource()->getAttribute('new_image')->getFrontend()->getValue($_product); 

如果它已经从后端选择了一些值

<?php if ($isNewImage != 'no_selection'):?> 

$_newImg ='<img id="your-id" src="'.$this->helper('catalog/image')->init($_product, 'new_image')->resize(300,300).'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />'; 

echo $_helper->productAttribute($_product, $_newImg , 'new_image'); 

<?php endif; ?> 
0

Farrukhs代码是接近最好的答案,

虽然他假设我们总是在默认情况下有一个$ _helper对象,如果不是这种情况,只需调用echo $ _newImg属性被铸造

其次,我显示我的图像在一个jQuery的scriptoluscious弹出窗口中,此代码导致wi ndow在弹出窗口中打开网站本身,而不是在第三层显示我的图像属性...它几乎感觉就像电影开始时,当你不断弹出框架内的弹出框,直到你得到图像...只是想分享这种混乱!

3

你需要添加自定义图像占位符,你的皮肤文件夹:images/catalog/product/placeholder/custom_image.jpg

+0

其中“custom_image”是您的属性的名称。 OP正在使用“new_image”,因此您需要在skin文件夹中有一个名为“new_image.jpg”的图像。 – Tisch 2016-09-29 15:03:28