1

因此,从产品视图来看,我正在展示相关产品。由于我不会进入的原因,我需要显示相关产品的图像,但它必须是自定义图像属性。所以我创建了一个名为 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/目录/Helper/Image.php(163): Mage_Catalog_Model_Product_Image->setBaseFile(NULL)

是否有可能我必须做某种 if no_selected 检查?

4

4 回答 4

2

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

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

归功于这个人,我在经过多年的搜索后发现了他的帖子:http: //thedistance.co.uk/journal/2011-10/missing-magento-media-images

于 2012-12-06T10:14:21.953 回答
0

您好,我认为您在自定义图像属性中添加了新的图像 url,然后调用可能会对您有所帮助

<img src="<?php echo Mage::getModel('catalog/product')->load($product)->getData('colour_swatch'); ?>"  
于 2012-12-06T05:25:28.640 回答
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,
));
于 2015-11-13T14:49:34.027 回答
0

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

喜欢

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

这对我来说很完美

于 2019-04-25T07:27:55.650 回答