繁体   English   中英

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

[英]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调用只有几个有效的字符串值: imagesmall_imagethumbnail ,对应于这些图像的产品属性。 如果要以这种方式调用图像,则需要将new_image设置为管理面板中的三个图像之一。

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

谢谢,乔

但是,这是一个错误。

我打赌你在var / report中的错误是这样的

Image not found 

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

所以,确保

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM