[英]Magento custom image attribute. How do I get in frontend?
我添加了一个带有名称和标签的图像属性,例如New Image,new_image。
我如何从例如view.phtml获取此信息? 我觉得这很简单
<?php
echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150);
?>
但是,这是一个错误。
有人知道这样做的正确方法吗?
非常感谢。
您需要将自定义占位符图像添加到皮肤文件夹: images/catalog/product/placeholder/custom_image.jpg
我在列表中显示同样的问题,但终于找到了解决它的方法。 我发现该属性仅显示在列表页面中的产品视图页面中。 所以我做的是再次加载产品:
$product=Mage::getModel('catalog/product')->load($_product->getId());
当我在显示图像中使用$product
而不是$_product
时,即
helper('catalog/image')->init($product, 'new_image')->resize(150, 150); ?>
有效。
我知道这不是一个很好的方法,但我不知道其他任何方式。 也许我们可以做一些事情来选择列表中的属性。
回答对你来说太迟了,但它可能对其他人有帮助。 以下答案适用于产品视图页面。
首先检查此属性是否具有某个值。
$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; ?>
Schonkton,我可以验证你的代码在catalog / product / view.phtml中运行得很好。 我认为你将图像属性添加到属性组...旁注是回声的输出将传递图像链接,因此需要将其包含在图像标记中。
echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150);
看起来你正在使用集合中的$ _product - 尝试先加载它:
$product = Mage::getModel('catalog/product')->load($_product->getId());
$this->helper('catalog/image')->init($product, 'new_image')->resize(150, 150);
Farrukhs代码接近最佳答案,
虽然他假设我们默认情况下总是有一个$ _helper对象,但如果不是这种情况,只需调用echo,其中$ _newImg属性被强制转换
其次,我在一个jquery scriptoluscious弹出窗口中显示我的图像,这个代码导致该窗口在弹出窗口中打开网站本身,而不是在第三级显示我的图像属性...它几乎感觉像电影开始,当你一直点击弹出框架内的弹出窗口,直到你得到图像...只是想分享这个嘶嘶声!
该init调用只有几个有效的字符串值: image
, small_image
和thumbnail
,对应于这些图像的产品属性。 如果要以这种方式调用图像,则需要将new_image
设置为管理面板中的三个图像之一。
否则,请在产品上查找“gallery”方法,因为这些方法会为您提供所有图像的迭代。
谢谢,乔
但是,这是一个错误。
我打赌你在var / report中的错误是这样的
Image not found
确保将图像上传到产品。 我建议使用bhab的例子,以防止产品没有新图像时出错。
所以,确保
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.