2012-10-05 137 views
2

我在後臺的系統集產品佔位符圖片 - >配置 - >目錄 - >產品圖像佔位符Magento的產品圖像佔位符

我可以半成功編程方式使用訪問產品佔位符圖像在我的觀點一個下面的代碼:

$this->getSkinUrl($this->helper('catalog/image')->init(
Mage::getModel('catalog/product'), 'small_image')); 

我的問題是,上述回報:

http://x.dev/skin/frontend/base/default/http://x.dev/media/catalog/product/cache/7/small_image/0dc2d03fe217f8c83829496872af24a0/placeholder/default/logo_4.jpg* 

好像getSkinUrl做什麼它說並增加了皮膚的路徑字符串,這是我真正的問題,來解決我以爲我會只是刪除getSkinUrl問題:

$this->helper('catalog/image')->init(
Mage::getModel('catalog/product'), 'small_image'); 

但上面的代碼拋出:

PHP Fatal error: Allowed memory size of 268435456 bytes exhausted 

燦任何人都會看到這個問題,我似乎越來越少,它似乎陷入了循環。

或者,有人知道另一種方法嗎?我很困難,我真的不想硬編碼。

謝謝

+1

對我來說這似乎很奇怪,喲你指定一個空的產品模型,而不是一個加載的產品。如果您使用'$ this-> helper('catalog/image') - > init( Mage :: getModel('catalog/product') - > load(),'small_image');'其中是一個產品ID? –

+0

@Lucasmus不幸的是,這給出了完全相同的問題。有趣的是,var_dumped Mage :: getModel('catalog/product')有和沒有productId,沒有提及圖像,而productId給出了圖像位置,但它不是佔位符的產品。如果我指定一個不存在的Id,我會以非常冒險的方式得到正確的佔位符。 'Mage :: getModel('catalog/product') - > load(1247901) - > getSmallImageUrl(200,200));'感謝您的想法,讓我的思想工作。任何其他的想法不是這樣一種拙劣的方式。 – input

+0

我結束了使用'Mage :: getModel('catalog/product') - > getSmallImageUrl(200,200)'',有點hacky但是有竅門。 – input

回答

11

非常感謝@ Lucasmus設置我在正確的軌道上。

我最終解決了這個問題,但方法有些拙劣,但是很有效。

Mage::getModel('catalog/product')->getSmallImageUrl(200,200); 

,將讓你在系統設置產品佔位符圖像 - >配置 - >目錄 - >產品圖像佔位符

編輯

由於@Tyler V指出,這是一個貶值方法,如果你不想使用它,你可以使用相同的邏輯方法它有點更詳細:

(string)Mage::helper('catalog/image')->init(
     Mage::getModel('catalog/product'), 
     'small_image' 
    )->resize(200, 200); 
+1

自1.1.5以來,此方法已被棄用 –