我添加了一个带有名称和标签的图片属性,例如新图片,new_image。
我如何从例如view.phtml?我认为它会像
一样简单<?php
echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150);
?>
但是,这是一个错误。
有人知道这样做的正确方法吗?
非常感谢。
答案 0 :(得分:3)
我在列表中显示同样的问题,但终于找到了解决问题的方法。 我发现该属性仅显示在列表页面中的产品视图页面中。 所以我做的是再次加载产品:
$product=Mage::getModel('catalog/product')->load($_product->getId());
当我在显示图像中使用$product
而不是$_product
时,即
helper('catalog/image')->init($product, 'new_image')->resize(150, 150); ?>
它有效。
我知道这不是一个好方法,但我不知道其他任何方式。也许我们可以做一些事情来选择列表中的属性。
答案 1 :(得分: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; ?>
答案 2 :(得分:3)
您需要将自定义占位符图片添加到您的皮肤文件夹:images/catalog/product/placeholder/custom_image.jpg
答案 3 :(得分:1)
Schonkton,我可以验证您的代码在catalog / product / view.phtml中运行得很好。我认为您已将图像属性添加到属性组...旁注是回声的输出将传递图像链接,因此需要将其包含在图像标记中。
echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150);
答案 4 :(得分:1)
似乎是您正在使用集合中的$ _product-尝试首先加载它:
$product = Mage::getModel('catalog/product')->load($_product->getId());
$this->helper('catalog/image')->init($product, 'new_image')->resize(150, 150);
答案 5 :(得分:0)
该初始化调用只有几个有效的字符串值:image
,small_image
和thumbnail
,对应于这些图像的产品属性。如果您想以这种方式调用图像,则需要将new_image
设置为管理面板中的三个图像之一。
否则,请在产品上查找“图库”方法,因为这些方法会为您提供所有图像以进行迭代。
谢谢, 乔
答案 6 :(得分:0)
Farrukhs代码接近最佳答案,
虽然他假设我们默认情况下总是有一个$ _helper对象,但如果不是这种情况,只需调用echo来回显$ _newImg属性
其次,我在jquery scriptoluscious弹出窗口中显示我的图像,这个代码导致该窗口在弹出窗口中打开网站本身,而不是在第3级显示我的图像属性...它几乎感觉像电影开始时,你一直点击弹出框内的弹出窗口,直到你得到图像......只是想分享一下这个嘶嘶声!
答案 7 :(得分:0)
但是,这是一个错误。
我打赌 var / report 中的错误就像
call procedureName(id,booking_id); // with parameter
确保将图像上传到产品。 我建议使用bhab的例子,以防止产品没有新图像时出现错误。
所以,确保