2013-04-08 117 views
3

我试图让这段代码在Magento 1.7.0工作...Magento的原始图像大小调整只显示图像占位符

它只显示Magento的占位符图像...

如果我变“图像”为“small_image”它工作正常

一切都建立在后端按钮选择的产品图片收音机......我已经清除缓存也...

这是发生在list.phtml文件中...

有人可以告诉我我做错了什么或为什么它不工作...我一直在搜索我找到了一个解决方案,经过3天的搜索,它没有工作....

_item没有定义

$所以人工智能得到非对象错误呼叫...

这里给的answere链接

Get base product image in Magento

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

回答

8

我会尝试要么...

a)将addAttributeToSelect('image')添加到列表块中的产品集合(假设它是本地的)。

......或者......(警告:这是哈克,而不是最好的做法)

二)在你的list.phtml文件,从产品ID加载完整的产品,你已经有

$productId = $_product->getId(); 
$_product = Mage::getModel('catalog/product')->load($productId); 
echo $this->helper('catalog/image')->init($_product, 'image')->resize(171, 259); 
+0

我不知道如何表达我对你的爱...... :)正常工作 – Drmjo 2013-04-08 20:17:14

+0

好消息!给它一个+1;)你使用(a)或(b)? – redjam13 2013-04-08 20:23:58

+0

我用你给的第二个答案我仍然不明白为什么它不加载“图像”来调整第一次你必须重新加载它...有什么想法吗? – Drmjo 2013-04-08 20:24:55

1

有些东西我没有在论坛中找到。所以,我分享我对这个问题的解决方案,你必须改变:
Mage::setIsDeveloperMode(true);Mage::setIsDeveloperMode(false);

1

因为这个线程在谷歌出现第一,我把我的经验在这里。上述解决方案不适用于view.phtml/media.phtml模板。这些属性已经被加载。在我的情况下,它不工作,因为服务器的内存限制不足以进行图像大小调整处理。它确实适用于默认媒体模板(调整大小(56)),因为它使用了已经生成的默认大小。我在我的index.php中添加了'ini_set('memory_limit','1024M')'来修复它。

我没有想到它,因为我的php.ini已经设置为1024M。 Magento在.htaccess中覆盖它(php值memory_limit -1),这对我的配置不起作用。

0

当我读到@Meyer说的话后,我知道了。确保开发人员模式设置为false 这可以从根完成。此设置到文件的末尾htaccess文件

SetEnv MAGE_IS_DEVELOPER_MODE "true"

和这将完成设置:

Mage::setIsDeveloperMode(true);Mage::setIsDeveloperMode(false);在index.php文件

0

检查是否收集确实加载了图像属性:

$productId = 1234; 
$product = Mage::getModel('catalog/product') 
    ->load($productId); 
echo (string)Mage::helper('catalog/image')->init($product, 'image')->resize(75, 75); 
echo (string)Mage::helper('catalog/image')->init($product, 'small_image')->resize(75, 75); 
echo (string)Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75, 75); 

if this g ives你只有某种占位符集合没有加载图像。

您可以扩展您的收藏像

$collection = Mage::getModel('catalog/product')->getCollection() 
     ->addAttributeToSelect('small_image') //or 
     ->addAttributeToSelect('thumbnail') //or 
     ->addAttributeToSelect('image'); 

或与媒体的配置,而不是工作:

$prodImage = Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail()); 

或使用

$prodImage = Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($productId, 'image', Mage::app()->getStore()); 

平桌

这可能是由平板引起的。检查您是否已经启用平表:

系统>配置>目录>目录>前端>使用平面 目录产品

如果是,检查是否平整表包含图像属性:

describe catalog_product_flat_1; // number varies depending on store 

如果图像属性不是平坦的表的一部分,只是它通过添加以下代码来应用的/ etc/config.xml中添加到表

<config> 
    <frontend> 
     <product> 
      <collection> 
       <attributes> 
        <image /> 
       </attributes> 
      </collection> 
     </product> 
    </frontend> 
</config>