Jawaban:
URL gambar yang Anda berikan tidak mungkin dimiliki oleh toko Magento. Saya kira Anda ingin itu dikaburkan, tetapi dengan melakukan itu tidak memungkinkan untuk menjawab.
Saya tidak dapat memikirkan alasan apa pun untuk membangun ulang jalur gambar kecuali jika Anda menggores situs web lain, jika tidak, Anda akan memiliki akses langsung ke model produk dan dapat mengambil informasi ini secara langsung.
Namun demikian, menggunakan contoh nyata. Misalnya
/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
Jika diunggah melalui admin Magento , gambar aslinya terletak di,
Jadi mendapatkan URL asli cukup mudah, cukup hapus jalur direktori cache dan hash.
Yaitu. Menghapuscache/1/image/9df78eab33525d08d6e5fb8d27136e95/
Begitu
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
Menjadi
/media/catalog/product/m/e/me-d1_2.jpg
Jika diunggah melalui aliran data / impor , gambar asli terletak di
/ media / impor
Tapi di luar akan ada dugaan. Namun orang-orang ingin memformat DIR unggahan mereka untuk impor benar-benar terserah mereka dan subdirektori gambarnya benar-benar tidak relevan - karena mereka memberikan jalur relatif ke gambar ketika mengunggah.
($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,
Argumen opsional jika ada tanda air
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Jadi misalnya, dengan default
md5('non_no_no_not_ffffff_0_90')
The md5
hash bisa sama di seluruh situs - untuk setiap gambar, tetapi Anda akan perlu untuk mengetahui nilai-nilai yang digunakan untuk menghasilkan itu. Anda bisa dengan kasar memaksanya dengan relatif mudah.
Ini adalah nilai Magento default untuk hash
9df78eab33525d08d6e5fb8d27136e95
Atribut: sonassi.com
Jawaban singkat - tidak. Tidak ada metode untuk mengembalikan gambar dasar berdasarkan url gambar cache. Namun, jika Anda menghapus folder cache dan hash Anda harus dapat melihat seperti apa URL itu, misalnya:
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
hapus semuanya setelah produk sampai trif awalan (dalam hal ini, hapus cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:
http://www.mysite.com/media/catalog/product/u/t/uti001_2.jpg
Mungkin cara yang lebih baik untuk menangani ini adalah menggunakan model objek:
$product = Mage::getModel('catalog/product')->load(42);
echo $product->getImage();
echo $product->getThumbnail();
Ini bekerja
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);