URL изображения, который вы дали, невозможно получить в магазине Magento. Я предполагаю, что вы хотели, чтобы это было запутано, но при этом сделали невозможным ответить.
Я не могу придумать каких-либо причин для де-конструирования пути к изображению, если вы не просматриваете другой веб-сайт, в противном случае у вас был бы прямой доступ к модели продукта и вы могли бы получить эту информацию напрямую.
Тем не менее, используя реальный пример. Например
/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
Нахождение исходного изображения
При загрузке через администратора Magento исходное изображение находится по адресу:
/media/catalog/product/m/e/me-d1_2.jpg
Таким образом, получить исходный URL довольно просто, просто удалите путь к каталогу кеша и хеш.
То есть. удалятьcache/1/image/9df78eab33525d08d6e5fb8d27136e95/
Так
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
становится
/media/catalog/product/m/e/me-d1_2.jpg
При загрузке через поток данных / импорт исходное изображение находится в
/ СМИ / импорт
Но дальше не было бы догадок. Однако люди хотят отформатировать свою загрузку. DIR для импорта действительно зависит от них, и подкаталог, в котором находятся изображения, на самом деле не актуален - так как они предоставляют относительный путь к изображению при загрузке.
Немного о хеше md5
($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,
Необязательные аргументы, если есть водяной знак
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Так, например, со значениями по умолчанию
md5('non_no_no_not_ffffff_0_90')
md5
Хэш может быть одинаковым по всему сайту - для каждого изображения, но вам нужно будет выяснить значения , используемые для его генерации. Вы можете сделать это сравнительно легко.
Это значение Magento по умолчанию для хэша
9df78eab33525d08d6e5fb8d27136e95
Атрибуты: sonassi.com
Краткий ответ - нет. Нет способа вернуть базовое изображение на основе URL-адреса изображения кэша. Однако, если вы удалите папку кеша и хеш, вы сможете понять, каким будет URL, например:
удалить все после продукта до префикса trie (в этом случае удалить
cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:Возможно, лучший способ справиться с этим - использовать объектную модель:
источник
Это работает
источник
В
list.phtml
, это то, что работает для меня:источник