我需要从类提供的减少的产品对象中检索主产品图像:Mage_Bundle_Model_Resource_Price_Index
我的代码证明了这个问题:
$_product = $this->getProduct();
$_options = Mage::helper('core')->decorateArray($this->getOptions());
foreach($_options as $_option):
$_selections = $_option->getSelections();
foreach ($_option->getSelections() as $tmpsel) {
var_dump($tmpsel->getImageUrl());
}
返回我的占位符图片:
http://dev.dev/media/catalog/product/cache/7/image/265x/0dc2d03fe217f8c83829496872af24a0/placeholder/default/logo_3.jpg
为了获得正确的Url图像,我已经使用了一个非常低效的全新产品对象。
foreach ($_option->getSelections() as $tmpsel) {
$product = Mage::getModel("catalog/product")->load($tmpsel->getId());
$image = Mage::helper('catalog/image')->init($product, 'image');
var_dump($image."");
}
这会正确返回:
http://dev.dev/media/catalog/product/cache/7/image/0dc2d03fe217f8c83829496872af24a0/M/P/MP1428219-107-Main.jpg
我希望能够将catalog/image
帮助器与选择($ tmpsel)一起使用,但是当我尝试时,我最终会再次获得占位符图像。
foreach ($_option->getSelections() as $tmpsel) {
$image = Mage::helper('catalog/image')->init($tmpsel, 'image');
var_dump($image."");
}
我想到的任何事情都可以帮助我添加
'small_image' => string '/M/P/MP1428219-107-Main.jpg'
'thumbnail' => string '/M/P/MP1428219-107-Main.jpg'
在:./ app / code / core / Mage / Bunle / Model / Resource / Price / Index.php
* Retrieve bundle options with selections and prices by product
该函数使用低级SQL生成集合,因此我可以随时扩展它以在需要时添加选项,但不确定哪些选项。
感谢您的阅读,希望有人能给我一个很好的方法,这样做,会不断更新。
答案 0 :(得分:1)
Init()方法需要产品对象
init(Mage_Catalog_Model_Product $product, $attributeName, $imageFile=null)
尝试
<?php echo $this->helper('catalog/image')->init($tmpsel, 'small_image')->resize(40,40); ?>
你没有'image',但你有'small_image'属性
答案 1 :(得分:1)
要获取完整的网址,您可以使用以下代码:
Mage::getSingleton('catalog/product_media_config')->getMediaUrl($product->getImage());
限制是只带主图像。
答案 2 :(得分:0)
在比较完整的产品对象和半成品对象后,我可以看到我正在为catalog/image
$image = Mage::helper('catalog/image')->init($tmpsel, 'image');
应该是
$image = Mage::helper('catalog/image')->init($tmpsel, 'small_image');