2011-11-27 11 views
8

Tengo el siguiente fragmento de código:Obtener url imagen original 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 
} 

Como se puede ver, he intentado varias maneras de obtener el URL de la imagen inicial. Actualmente estoy usando getImageUrl(), pero recupera la imagen base, que es una versión recortada. ¿Cómo puedo recuperar la imagen original?

Gracias de antemano.

Edit: En serio, parece que no hay una función para él, ha estado buscando en Google por horas (también antes de publicar aquí). Así que escribí mi propia función.

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

me llaman con:

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

Obras para mí, aunque no es una buena manera de hacerlo.

Respuesta

30

Debe utilizar el modelo de configuración de medios del producto de catálogo para este fin.

<?php 

//your code ... 

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

Espero que esto ayude.

+0

Gracias, funciona! – pbond

+0

Gracias, funciona. El único problema es que no aparecerá la imagen de marcador de posición si la imagen no existe. Cualquier trabajo alrededor? – Coder

+0

La lógica del marcador de posición es parte del ayudante 'catalog/image'. – benmarks

2

otra manera más rápida:

$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(); 
} 
Cuestiones relacionadas