답변:
귀하가 제공 한 이미지 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 admin을 통해 업로드 된 경우 원본 이미지는
따라서 원래 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
dataflow / import를 통해 업로드 된 경우 원본 이미지는
/ media / import
그러나 그 너머에는 추측이있을 것입니다. 그러나 사람들은 자신의 업로드 DIR 형식을 원합니다. 가져 오기를 위해 DIR은 실제로 그들에게 달려 있으며 이미지가있는 하위 디렉토리는 관련이 없습니다. 업로드 할 때 이미지의 상대 경로를 제공하기 때문입니다.
($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
해시는 전체 사이트에서 동일한 수 - 모든 이미지에 대한,하지만 당신은 그것을 생성하는 데 사용되는 값을 알아낼 필요가있다. 비교적 쉽게 무차별 대입 할 수 있습니다.
해시의 기본 마 젠토 값입니다
9df78eab33525d08d6e5fb8d27136e95
기여 : sonassi.com
짧은 대답-아니요. 캐시 이미지 URL을 기반으로 기본 이미지를 반환하는 방법은 없습니다. 그러나 캐시 폴더와 해시를 제거하면 다음과 같이 URL을 직관적으로 지정할 수 있습니다.
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
접두사 trie까지 제품 뒤에있는 모든 것을 제거하십시오 (이 경우 remove cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:
http://www.mysite.com/media/catalog/product/u/t/uti001_2.jpg
아마도 이것을 다루는 더 좋은 방법은 객체 모델을 사용하는 것입니다.
$product = Mage::getModel('catalog/product')->load(42);
echo $product->getImage();
echo $product->getThumbnail();
이 작동합니다
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);