Php 在Magento中添加新产品图像类型(属性)

Php 在Magento中添加新产品图像类型(属性),php,image,magento,attributes,product,Php,Image,Magento,Attributes,Product,我正在尝试在产品管理面板中添加新的图像类型。我创建了一个新属性(hero_banner),将其类型设置为媒体图像(类似于缩略图图像和小图像的设置方式)。然后我将其添加到images下的默认属性集中。它在管理面板中显示良好,允许您将图像指定为英雄,但当我尝试将图像路径回显到phtml中时,模板停止渲染。我用来回显图像的代码如下: <?php echo $this->helper('catalog/image')->init($_product, 'hero_banner'); ?

我正在尝试在产品管理面板中添加新的图像类型。我创建了一个新属性(hero_banner),将其类型设置为媒体图像(类似于缩略图图像和小图像的设置方式)。然后我将其添加到images下的默认属性集中。它在管理面板中显示良好,允许您将图像指定为英雄,但当我尝试将图像路径回显到phtml中时,模板停止渲染。我用来回显图像的代码如下:

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


这是在产品foreach迭代中完成的,因此我有$\u产品变量,并且能够很好地回显其他图像(例如缩略图、小图像等)。我做错了什么?

我认为在实际加载集合之前,您也必须在集合中选择此属性,如下所示:

$productCollection->addAttributeToSelect('hero_banner');
它在我的代码中运行良好,但我不知道您是否已经重写了定义集合的块(因为集合已经加载到模板中,所以它在模板中不起作用) 也许你可以配置你的hero_属性来添加这个addAttribute直接在Magento后台选择,我来看看

编辑:好的,我想我知道了,你不用担心收集和重写:) 如果在产品列表中使用此属性,则必须将属性“在产品列表中可见”设置为true,以设置图像属性(在“管理”面板“属性管理”中)


祝你好运

绝对的传奇谢谢你工作得很有魅力。虽然我使用自定义代码检索我的产品集合,但我使用的代码取自List.php,以尝试遵守Magento最佳实践。添加属性的代码是:->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()),我想在hero中使用它。知道我在哪里可以编辑这个吗?我不明白你想做什么?如果您使用getProductAttribute()(在Mage_Catalog_Model_Resource_Eav_Mysql4_Config::getProductAttribute()中查看一下),那么即使在列表块之外,也应该可以使用此属性。我要说的是,在方法调用中,我发布了其他图像(例如,小图像、缩略图等)的属性。如果我能找出它们是如何包含它们的,那就太好了,这样我就不用说在我想使用的地方都包含英雄属性。我不觉得太麻烦,但这只是一种更好的方式。好吧,那么我想你可以将“在产品列表上可见”设置为false,然后在你调用->addAttributeToSelect('hero_banner')的地方添加->addAttributeToSelect('Mage::getSingleton('catalog/config')->getProductAttributes()。这就是我正在做的事情,也是我想避免做的事情。这个方法调用Mage::getSingleton('catalog/config')->getProductAttributes()显然是返回它选择的属性数组。我想说的是,如果我能将我的属性添加到这个属性数组的来源,那会更好。迪诺,你是怎么做到的,我也想实现它的。你能和我分享一些信息吗?