【问题标题】:Add New Product Image Type (Attribute) in Magento在 Magento 中添加新的产品图像类型(属性)
【发布时间】:2011-03-23 10:24:20
【问题描述】:

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

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

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

【问题讨论】:

  • Dino,你是怎么做到的,我也想实现。可以和我分享一些信息吗?

标签: php image magento attributes product


【解决方案1】:

我认为在实际加载集合之前,您也必须像这样在集合中选择此属性:

$productCollection->addAttributeToSelect('hero_banner');

它在我的代码上运行良好,但我不知道您是否已经重写了定义集合的块(它不会在您的模板中工作,因为集合已经加载到那里) 也许你可以配置你的 hero_attribute 来直接在 Magento 后台添加这个 addAttributeToSelect,我去看看

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

祝你好运

【讨论】:

  • 绝对的传奇谢谢你的工作就像一个魅力。虽然我使用自定义代码来检索我的产品集合,但我使用从 List.php 获取的代码来尝试符合 Magento 最佳实践。添加属性的代码是: ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) 我想拉入英雄。知道我可以在哪里编辑吗?
  • 我不明白你想做什么?如果您使用 getProductAttribute(),即使在 List 块之外也应该有此属性可用(查看 Mage_Catalog_Model_Resource_Eav_Mysql4_Config::getProductAttribute())
  • 我的意思是在那个方法调用中我发布了其他图像的属性(例如 small_image、缩略图等)。如果我能找出它们是如何包含它们的,那就太好了,这样我就不必说在任何我想使用它的地方都包含 hero 属性。我并没有受到很大的困扰,但这只是一种更好的方式。
  • 好的,那我猜你可以将“在产品列表中可见”设置为 false,然后在你调用的地方添加 ->addAttributeToSelect('hero_banner') ->addAttributeToSelect(Mage::getSingleton('catalog/ config')->getProductAttributes()).
  • 这就是我正在做的事情,也是我想要避免做的事情。这个方法调用 Mage::getSingleton('catalog/config')->getProductAttributes() 显然返回它选择的属性数组。我的意思是,如果我可以将我的属性添加到这个属性数组来自的任何地方会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
相关资源
最近更新 更多