O URL da imagem que você forneceu é impossível de ter com uma loja Magento. Suponho que você queria que isso fosse ofuscado, mas, ao fazer isso, tornou impossível responder.
Não consigo pensar em nenhum motivo para desconstruir o caminho da imagem, a menos que você esteja raspando na Web outro site, caso contrário, você teria acesso direto ao modelo do produto e poderia buscar essas informações diretamente.
No entanto, usando um exemplo real. Por exemplo
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
De construir o caminho da imagem em cache
/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
Localizando a imagem original
Se enviado via administrador Magento , a imagem original está localizada em,
/media/catalog/product/m/e/me-d1_2.jpg
Portanto, é muito fácil obter o URL original, basta remover o caminho e o hash do diretório de cache.
Ou seja. Removercache/1/image/9df78eab33525d08d6e5fb8d27136e95/
tão
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
Torna-se
/media/catalog/product/m/e/me-d1_2.jpg
Se carregada via fluxo de dados / importação , a imagem original está localizada em
/ media / import
Mas além, haveria suposições. No entanto, as pessoas desejam formatar seu DIR de upload para importação é realmente deles e o subdiretório em que as imagens realmente não é relevante - pois eles fornecem o caminho relativo para a imagem durante o upload.
Um pouco sobre o md5 Hash
($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 opcionais se houver uma marca d'água
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Por exemplo, com os padrões
md5('non_no_no_not_ffffff_0_90')
O md5
hash pode ser o mesmo em todo o site - para cada imagem, mas você precisa descobrir os valores usados para gerá-lo. Você pode fazer força bruta com relativa facilidade.
Este é o valor padrão do Magento para o hash
9df78eab33525d08d6e5fb8d27136e95
Atribuições: sonassi.com
Resposta curta - não. Não há método para retornar a imagem base com base no URL da imagem em cache. No entanto, se você remover a pasta do cache e o hash, poderá intuir qual seria o URL, por exemplo:
remova tudo o que estiver após o produto até o prefixo (neste caso, remova
cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:Talvez uma maneira melhor de lidar com isso, no entanto, seja usar o modelo de objeto:
fonte
Isso funciona
fonte
No
list.phtml
, é isso que funcionou para mim:fonte