2011-11-27 27 views
8

Tôi có đoạn mã sau:Get gốc url hình ảnh 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 
} 

Như bạn thấy đấy, tôi đã thử nhiều cách để có được url hình ảnh gốc. Hiện tại tôi đang sử dụng getImageUrl(), nhưng nó lấy ra hình ảnh cơ sở, là một phiên bản được cắt. Làm thế nào tôi có thể lấy hình ảnh gốc ??

Xin cảm ơn trước.

Chỉnh sửa: Nghiêm túc xuất hiện không có chức năng cho nó, được Googling hàng giờ liền (cũng trước khi đăng bài ở đây). Vì vậy, tôi đã viết chức năng của riêng tôi.

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; 
} 

Tôi gọi nó với:

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

trình cho tôi, mặc dù nó không phải là một cách tốt đẹp để làm điều đó.

Trả lời

30

Bạn nên sử dụng mô hình cấu hình phương tiện sản phẩm danh mục cho mục đích này.

<?php 

//your code ... 

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

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn, nó hoạt động! – pbond

+0

Cảm ơn, nó hoạt động. Chỉ có vấn đề là nó sẽ không hiển thị hình ảnh giữ chỗ nếu hình ảnh không tồn tại. Bất kỳ công việc xung quanh? – Coder

+0

Logic trình giữ chỗ là một phần của trình trợ giúp 'catalog/image'. – benmarks

2

cách khác nhanh hơn:

$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(); 
} 
Các vấn đề liên quan