Php Magento自定义图像属性。我如何进入前端?

Php Magento自定义图像属性。我如何进入前端?,php,magento,Php,Magento,我添加了一个带有名称和标签的图像属性,例如New image、New_image 如何从例如view.phtml获取此信息?我想这会很简单 <?php echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150); ?> 但是,这是一个错误 有人知道正确的方法吗 非常感谢。初始化调用只有几个有效的字符串值:图像、小图像和缩略图,对应于这些图像的产品

我添加了一个带有名称和标签的图像属性,例如New image、New_image

如何从例如view.phtml获取此信息?我想这会很简单

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

但是,这是一个错误

有人知道正确的方法吗


非常感谢。

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

否则,请在产品上查找“gallery”方法,因为这些方法将为您提供所有图像以供迭代

谢谢,
Joe

我在列表中显示时遇到了同样的问题,但最终找到了解决方法。 我发现该属性只显示在产品视图页面中,而不显示在列表页面中。 因此,我所做的是再次加载产品,如下所示:

$product=Mage::getModel('catalog/product')->load($_product->getId());
当我在显示图像中使用
$product
而不是
$\u product
时,即

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


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

Schonkton,我可以在catalog/product/view.phtml中验证您的代码是否工作正常。我认为您已将图像属性添加到属性组。。。附带说明的是,echo的输出将提供一个图像链接,因此需要包含在图像标签中

    echo $this->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; ?>

$\u newImg='helper('catalog/image')->init($\u product,'new\u image')->resize(300300)。“'alt=“”。$this->htmlEscape($this->getImageLabel())。'title=“”。$this->htmlEscape($this->getImageLabel())。“/>”;
echo$\u helper->productAttribute($\u product,$\u newImg,$\u image');

法鲁克的代码接近最佳答案

虽然他假设默认情况下我们总是有一个$\u helper对象,但如果不是这样,只需调用echo,其中$\u newImg属性是强制转换的


其次,我在一个jquery脚本化的弹出窗口中显示我的图像,这段代码使该窗口在弹出窗口中打开站点本身,而在第三级,它显示我的图像属性…这感觉就像电影《盗梦空间》,当你在弹出框中不断单击弹出窗口直到你得到图像…只是想打开它你需要将自定义占位符图像添加到皮肤文件夹:
images/catalog/product/placeholder/custom_image.jpg

但是,这是一个错误

我打赌您在var/report中的错误如下

确保已将图像上载到产品。 我建议使用bhab的示例,以防止产品没有新图像时出现错误

所以,确保

  • 属性新图像存在
  • 属性在当前属性集中
  • view.phtml使用bhabs代码
  • 产品中给出了一个新的_图像-图像

  • 似乎您正在使用集合中的$\u产品-请先尝试加载它:

    $product = Mage::getModel('catalog/product')->load($_product->getId());
    $this->helper('catalog/image')->init($product, 'new_image')->resize(150, 150);
    

    您好,谢谢您的回复。所以,您只能这样调用image、small\u image和thumbnail?我已将属性new\u image添加为type media image。在view.phtml中获取该图像的最佳方法是什么?另外,我如何从更多视图/图库中排除图像?特别是,新的\u图像?非常感谢,AdamWhere“自定义\u图像”“是属性的名称。OP正在使用“new_image”,因此您需要在皮肤文件夹中使用名为“new_image.jpg”的图像。请选择最正确的答案,我的意思是您的问题也有点不确定。根据我的理解,自定义图像属性将是另一个模型中未链接到产品的图像。
    $product = Mage::getModel('catalog/product')->load($_product->getId());
    $this->helper('catalog/image')->init($product, 'new_image')->resize(150, 150);