Respuestas:
Es imposible tener la URL de la imagen que ha proporcionado con una tienda Magento. Supongo que querías que se ofuscara, pero al hacerlo, ha sido imposible responder.
No puedo pensar en ninguna razón para desarmar la ruta de la imagen a menos que esté raspando en la web otro sitio web, de lo contrario, tendría acceso directo al modelo del producto y podría obtener esta información directamente.
Sin embargo, usando un ejemplo real. P.ej
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
|___________________________|_|_____|________________________________|_|_|__________|
| | | | | | |
Cache Directory | | | | | |
Mage/Catalog/Model/Product/Media/Config.php | | | |
getBaseMediaPath() | | | | | |
| | | | | |
| | | | | |
Store ID | | | |
Mage::app()->getStore()->getId() | | |
| | | | |
| | | | |
Subdirectory | | | |
Mage/Catalog/Model/Product/Image.php | | |
getDestinationSubdir() | | | |
| | | |
| | | |
MD5 of Image Params | | |
See below | | |
Mage/Catalog/Model/Product/Image.php
Line +324 | | |
| | |
| | |
First letter of Image Name
| |
| |
Second letter of Image Name
|
|
Original Image Name
Si se carga a través del administrador de Magento , la imagen original se encuentra en,
Entonces, obtener la URL original es bastante fácil, simplemente elimine la ruta del directorio de caché y el hash.
Es decir. retirarcache/1/image/9df78eab33525d08d6e5fb8d27136e95/
Asi que
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
Se convierte
/media/catalog/product/m/e/me-d1_2.jpg
Si se carga a través del flujo de datos / importación , la imagen original se encuentra en
/ media / import
Pero más allá habría conjeturas. Sin embargo, la gente quiere formatear su DIR de carga para importar realmente depende de ellos y el subdirectorio en el que se encuentran las imágenes realmente no es relevante, ya que proporcionan la ruta relativa a la imagen al cargar.
($this->_keepAspectRatio ? '' : 'non') . 'proportional',
($this->_keepFrame ? '' : 'no') . 'frame',
($this->_keepTransparency ? '' : 'no') . 'transparency',
($this->_constrainOnly ? 'do' : 'not') . 'constrainonly',
$this->_rgbToString($this->_backgroundColor),
'angle' . $this->_angle,
'quality' . $this->_quality,
Args opcionales si hay una marca de agua
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Entonces, por ejemplo, con los valores predeterminados
md5('non_no_no_not_ffffff_0_90')
El md5
hash podría ser el mismo en todo el sitio, para cada imagen, pero necesitaría averiguar los valores utilizados para generarlo. Podrías forzarlo con relativa facilidad.
Este es el valor predeterminado de Magento para el hash
9df78eab33525d08d6e5fb8d27136e95
Atribuciones: sonassi.com
Respuesta corta: no. No hay ningún método para devolver la imagen base según la url de la imagen de caché. Sin embargo, si elimina la carpeta de caché y el hash, debería poder intuir cuál sería la URL, por ejemplo:
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
elimine todo después del producto hasta el prefijo trie (en este caso, elimine cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:
http://www.mysite.com/media/catalog/product/u/t/uti001_2.jpg
Sin embargo, quizás una mejor manera de lidiar con esto es usar el modelo de objetos:
$product = Mage::getModel('catalog/product')->load(42);
echo $product->getImage();
echo $product->getThumbnail();
Esto funciona
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);