2011-11-27 11 views
8

を取得:あなたが見ることができるように私は次のコード持っている元画像のURL Magentoの(1.6.1.0)

$cProduct = Mage::getModel("catalog/product"); 
foreach($products_id as $product_id) { 
    $product = $cProduct->load($product_id); 
    //$products_image[] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).str_replace(Mage::getBaseUrl('media'),"", $product); 
    //$products_image[] = $product->getMediaConfig()->getMediaUrl($_product->getData('image')); 
    $products_image[] = $product->getImageUrl(); //product's image url 
} 

を、私は、元の画像のURLを取得する方法をいくつか試してみました。現在、私はgetImageUrl()を使用していますが、トリミングされたベースイメージを取得します。元の画像を取得するにはどうすればいいですか?

ありがとうございます。

編集: 真剣にそれのための機能はありません、(私はここに投稿する前に)まっすぐ時間のグーグルで表示されます。だから私は自分自身の機能を書いた。

function get_original_image_url($base_image_url) { 
    $exploded = explode("/", $base_image_url); 
    $image_name = $exploded[count($exploded) - 1]; 

    $original_image_url = "http://yoursitehere.com/media/catalog/product/" . $image_name[0] . "/" . 
          $image_name[1] . "/" . $image_name; 

    return $original_image_url; 
} 

私はそれを呼び出す:

$original = get_original_image_url($product->getImageUrl()); 

作品私にとっては、それはそれを行うための良い方法ではありませんけれども。

答えて

30

この目的で、カタログ製品のメディア構成モデルを使用する必要があります。

<?php 

//your code ... 

echo Mage::getModel('catalog/product_media_config') 
      ->getMediaUrl($product->getImage()); //getSmallImage(), getThumbnail() 

これが役立ちます。

+0

おかげで、それは働きます! – pbond

+0

ありがとう、それは動作します。画像が存在しない場合は、プレースホルダ画像が表示されません。どんな仕事? – Coder

+0

プレースホルダロジックは 'catalog/image'ヘルパーの一部です。 – benmarks

2

他のより高速な方法:

$cProduct = Mage::getModel("catalog/product"); 
$baseUrl = Mage::getBaseUrl('media') . 'catalog/product/'; 
foreach($products_id as $product_id) { 
    $product = $cProduct->load($product_id); 
    $products_image[] = $baseUrl . $product->getImage(); 
} 
関連する問題