Get full cached path of product relative images Ma

2019-08-03 15:56发布

问题:

Hi i have got the full cached thumbnail and main image path with my code But i want to get the full cached path of relative *image* also Please suggest some ideas

  <?php
@ob_start();
@session_start();
ini_set('display_errors', 1);
//for order update
include '../../../../app/Mage.php';
Mage::app('default');
echo '<pre>';
if(isset($_REQUEST['productid'])){
$productId = $_REQUEST['productid'];
}else{

$productId = '12402'; // product ID 10 is an actual product, and used here for a test
}
$product = Mage::getModel('catalog/product')->load($productId);  //load the product     
echo 'product_id '.'=>'.$product->getId().'<br/>';                                        

echo 'created_at '.'=>'.$product->getcreated_at().'<br/>';   
echo 'description '.'=>'.$product->getdescription().'<br/>'; 
echo 'short_description '.'=>'.$product->getshort_description().'<br/>'; 
echo 'sku'.'=>'.$product->getsku().'<br/>'; 
 'media_gallery'.'=>'.$product->getmedia_gallery().'<br/>'; 
print_r($product->getmedia_gallery());
?>
<?php 
$image = Mage::helper('catalog/image')->init($product, 'image');
$image1 = str_replace('/webApps/migration/productapi/new/','/',$image);
//echo '<img id="image" src="'.$image1.'"  />';
echo 'image => '.$image1.'<br/>';


$thumbnail = Mage::helper('catalog/image')->init($product, 'thumbnail');
$thumbnail1 = str_replace('/webApps/migration/productapi/new/','/',$thumbnail);
echo 'thumbnail => '.$thumbnail1.'<br/>';
?> 

回答1:

*with this code* i got the product relative *images* full path

 <?php
    @ob_start();
    @session_start();
    ini_set('display_errors', 1);
    //for order update
    include '../../../../app/Mage.php';
    Mage::app('default');
    echo '<pre>';
    if(isset($_REQUEST['productid'])){
    $productId = $_REQUEST['productid'];
    }else{

    $productId = '12402'; // product ID 10 is an actual product, and used here for a test
    }
    $product = Mage::getModel('catalog/product')->load($productId);  //load the product     
    echo 'product_id '.'=>'.$product->getId().'<br/>';                                        

    echo 'created_at '.'=>'.$product->getcreated_at().'<br/>';   
    echo 'description '.'=>'.$product->getdescription().'<br/>'; 
    echo 'short_description '.'=>'.$product->getshort_description().'<br/>'; 
    echo 'sku'.'=>'.$product->getsku().'<br/>'; 

     if (count($product->getMediaGalleryImages()) > 0){
          foreach ($product->getMediaGalleryImages() as $_image){
              $thumbnail12 = Mage::helper('catalog/image')->init($product->getProduct(), 'image', $_image->getFile())->resize(2000);
              $thumbnail13 = str_replace('/webApps/migration/productapi/new/','/',$thumbnail12);
              echo 'thumbnail => '.$thumbnail13.'<br/>';
               }
                            }

    ?>


回答2:

Please note if you are debugging this and not understanding why you aren't getting the image path string from:

Mage::helper('catalog/image')->init($product->getProduct(), 'image', $_image->getFile())->resize(2000)

it's because it implements the toString() method so eachoing this actually gives the full path to the image. You see it by calling ->toString() or just adding (String)Mage...

(But it's not needed to use (String) or ->toString() when echoing, php does this by default)