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

时间:2010-07-09 11:35:49

标签: php magento

我添加了一个带有名称和标签的图片属性,例如新图片,new_image。

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

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

但是,这是一个错误。

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

非常感谢。

8 个答案:

答案 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)

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

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

谢谢, 乔

答案 6 :(得分:0)

Farrukhs代码接近最佳答案,

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

其次,我在jquery scriptoluscious弹出窗口中显示我的图像,这个代码导致该窗口在弹出窗口中打开网站本身,而不是在第3级显示我的图像属性...它几乎感觉像电影开始时,你一直点击弹出框内的弹出窗口,直到你得到图像......只是想分享一下这个嘶嘶声!

答案 7 :(得分:0)

  

但是,这是一个错误。

我打赌 var / report 中的错误就像

call procedureName(id,booking_id); // with parameter

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

所以,确保

  1. 属性 new_image 存在
  2. 属性位于您当前的属性集
  3. view.phtml 使用bhabs代码
  4. 产品中提供了new_image -image