我正在使用1.3.2.1版本, 但在我客户的服务器上,他们有Magento 1.3.0 所以我以前的代码显示本地副本的图像,
echo $this->helper('catalog/image')->init($_product)->resize(163, 100);
,不适用于客户端的安装。
查看Magento返回的结果,版本1.3.0实际上返回了一个URL,尽管它指向了皮肤的媒体文件夹。
有没有办法获取图像的绝对图像路径?
或者我应该在其他地方进行更改,告诉Magento媒体目录应该在根目录上吗?
答案 0 :(得分:54)
echo $_product->getImageUrl();
Product类的这个方法可以帮到你。
答案 1 :(得分:32)
在某些情况下,您可以尝试将$this->
替换为Mage::
。您需要转换为字符串。
就我而言,我正在使用DirectResize extension (direct link),所以我的代码是这样的:
(string)Mage::helper('catalog/image')->init($_product, 'image')->directResize(150,150,3)
比率选项(第3个参数)是:
更新:其他信息和版本here
常见的方式,没有插件:
(string)Mage::helper('catalog/image')->init($_product, 'image')->resize(150)
您可以将'image'替换为'small_image'或'thumbnail'。
答案 2 :(得分:13)
我最近也需要这样做......这就是我如何做到的:
$_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl();
希望能帮到你!
答案 3 :(得分:8)
以下是我发现加载集合中所有产品的所有图像数据的方法。我现在不确定为什么需要从Mage :: getModel切换到Mage :: helper并重新加载产品,但必须完成。我已经从magento图像soap api反向设计了这个代码,所以我很确定它是正确的。
我已将其设置为加载供应商代码等于'39'的产品,但您可以将其更改为任何属性,或只加载所有产品,或加载您想要的任何集合(包括显示的phtml文件中的集合)目前在屏幕上的产品!)
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addFieldToFilter(array(
array('attribute'=>'vendor_code','eq'=>'39'),
));
$collection->addAttributeToSelect('*');
foreach ($collection as $product) {
$prod = Mage::helper('catalog/product')->getProduct($product->getId(), null, null);
$attributes = $prod->getTypeInstance(true)->getSetAttributes($prod);
$galleryData = $prod->getData('media_gallery');
foreach ($galleryData['images'] as &$image) {
var_dump($image);
}
}
答案 4 :(得分:5)
首先您需要验证在Magento管理员中选择基本,小图像和缩略图。
admin-> catalog-> manage product-> product-> image
然后选择您的图片角色(基本,小,缩略图)
然后使用
调用图像echo $ this-> helper('catalog / image') - > init($ _ product, 'small_image') - >调整大小(163,100);
希望这会对你有所帮助。
答案 5 :(得分:4)
// Let's load the category Model and grab the product collection of that category
$product_collection = Mage::getModel('catalog/category')->load($categoryId)->getProductCollection();
// Now let's loop through the product collection and print the ID of every product
foreach($product_collection as $product) {
// Get the product ID
$product_id = $product->getId();
// Load the full product model based on the product ID
$full_product = Mage::getModel('catalog/product')->load($product_id);
// Now that we loaded the full product model, let's access all of it's data
// Let's get the Product Name
$product_name = $full_product->getName();
// Let's get the Product URL path
$product_url = $full_product->getProductUrl();
// Let's get the Product Image URL
$product_image_url = $full_product->getImageUrl();
// Let's print the product information we gathered and continue onto the next one
echo $product_name;
echo $product_image_url;
}
答案 6 :(得分:4)
<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/>
答案 7 :(得分:3)
如果您有产品集合对象,请执行以下操作:
$collection = Mage::getModel('catalog/product')->getCollection();
现在,如果无法使用
获取图像路径,则可以使用$_product->getSku()
获取产品sku
echo $this->helper('catalog/image')->init($_product,'small_image')->resize(135);
或
$_product->getImageUrl();
然后你可以添加一些代码
$productModel = Mage::getModel('catalog/product');
$_prod = $productModel->loadByAttribute('sku', $_product->getSku());
$_prod->getImageUrl();
答案 8 :(得分:2)
您需要设置图像类型:small_image或image
echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(163, 100);
答案 9 :(得分:2)
$model = Mage::getModel('catalog/product'); //getting product model
$_products = $model->getCollection(); //getting product object for particular product id
foreach($_products as $_product) { ?>
<a href = '<?php echo $model->load($_product->getData("entity_id"))->getUrl_path(); ?>'> <img src= '<?php echo $model->load($_product->getData("entity_id"))->getImageUrl(); ?>' width="75px" height="75px"/></a>
<?php echo "<br/>".$model->load($_product->getData("entity_id"))->getPrice()."<br/>". $model->load($_product->getData("entity_id"))->getSpecial_price()."<br/>".$model->load($_product->getData("entity_id"))->getName()?>
<?php
答案 10 :(得分:1)
使用产品ID
获取magento中的产品图片 $product_id = $_POST['product_id'];
$storeId = Mage::app()->getStore()->getId();
$loadpro = Mage::getModel('catalog/product')->load($product_id);
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
$mediaApiItems = $mediaApi->items($loadpro->getId());
foreach ($mediaApiItems as $item) {
//for getting existing Images
echo $item['file'];
}
答案 11 :(得分:0)
(string)Mage::helper('catalog/image')->init($product, 'image');
这将为您提供图片网址,即使图片托管在CDN上也是如此。