相关产品的Magento自定义图像属性

时间:2012-12-05 18:17:37

标签: image magento

所以从产品视图我得到相关产品展示。由于我不会进入的原因,我需要显示相关产品的图像,但它必须是自定义图像属性。所以我创建了一个名为colour_swatch的自定义图像属性,我需要访问它并在屏幕上显示它。我已经对这个问题做了一些阅读,但没有找到适合我需求的解决方案。

所以这是我的代码:

<?php foreach($this->getItems() as $_item): ?>
    <div class="eachProductRelated">
        <a href="<?php echo $_item->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_item->getName()) ?>" class="product-image">
            <img src="<?php echo $this->helper('catalog/image')->init($_item, 'colour_swatch') ?>"
                 width="20px" alt="<?php echo $this->htmlEscape($_item->getName()) ?>"/>
        </a>
    </div>
<?php endforeach ?>

如果我们用小图像替换colour_swatch,那当然会起作用。我已经读过,如果您没有直接从产品视图中调用它,则无法访问自定义图像属性。我所看到的很多解决方案似乎都是过度杀伤,当然有一个更简单的解决方案???

可能值得告诉您,我收到以下错误消息:

  

a:5:{i:0; s:25:“未找到图像文件。”; i:1; s:4015:“#0   /Users/Frank/Sites/bosideng/app/code/core/Mage/Catalog/Helper/Image.php(163):   Mage_Catalog_Model_Product_Image-&GT; setBaseFile(NULL)

如果没有选择检查,我是否有可能做某种事情?

4 个答案:

答案 0 :(得分:2)

我已经弄清楚了这个问题并原谅了我的法语,但这是Magento的荒谬和愚蠢的疏忽。

设置新的自定义图像属性时,必须在下拉列表中将“使用产品列表”设置为,然后才能选择属性类型“媒体图像”,因为猜猜是什么!?当您选择媒体图像时,Magento会隐藏该选项。

相信这位经过搜索多年后发现的帖子:http://thedistance.co.uk/journal/2011-10/missing-magento-media-images

答案 1 :(得分:0)

您好我认为您在自定义图片属性中添加新图片网址,然后调用可能会帮助您

<img src="<?php echo Mage::getModel('catalog/product')->load($product)->getData('colour_swatch'); ?>"  

答案 2 :(得分:0)

对于那些使用安装程序创建自定义图像类型的人,添加以下内容以使图像在列表页面和视图页面上都可见:

$this->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'colour_swatch', array(
    'group'             => 'Images',
    'type'              => 'varchar',
    'frontend'          => 'catalog/product_attribute_frontend_image',
    'label'             => 'Color Swatch',
    'input'             => 'media_image',
    'class'             => '',
    'source'            => '',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'default'           => '',
    'used_in_product_listing' => true,
));

答案 3 :(得分:0)

如果“平面目录类别”和“使用平面目录产品”设置为“是”,则可以将特定属性添加到集合中

喜欢

$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addAttributeToSelect('*');
$collection->addAttributeToSelect('attributes_name');

这对我来说很完美

相关问题