Yanıtlar:
Verdiğiniz resim URL’sinin Magento mağazasında olması mümkün değil. Sanırım karışıklığa uğramak istedin, ama bunu yaparken cevap vermeyi imkansız hale getirdin.
Başka bir web sitesini webden kazımadığınız sürece görüntü yolunu kaldırmak için herhangi bir neden düşünemiyorum, aksi takdirde ürün modeline doğrudan erişebilir ve bu bilgileri doğrudan alabilirsiniz.
Bununla birlikte, gerçek bir örnek kullanarak. Örneğin
/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 yöneticisi ile yüklüyse , orijinal resim şurada bulunur:
Orijinal URL'yi almak oldukça kolaydır, sadece önbellek dizini yolunu ve karmasını kaldırın.
Yani. Kaldırcache/1/image/9df78eab33525d08d6e5fb8d27136e95/
Yani
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
Oluyor
/media/catalog/product/m/e/me-d1_2.jpg
Veri akışı / içe aktarma yoluyla yüklüyse , orijinal resim
/ Media / ithalat
Fakat ötesinde, tahminler de olur. Bununla birlikte, insanlar içe aktarma için DIR'lerini biçimlendirmek istiyorlar ve bu onlara bağlı ve resimlerin gerçekten ilgili olmadığı alt dizin - yükleme sırasında görüntünün göreceli yolunu sağladıkları için.
($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,
Filigran varsa isteğe bağlı args
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Örneğin, varsayılanlarla
md5('non_no_no_not_ffffff_0_90')
md5
Karma sitenin tamamında aynı olabilir - her resim için, ama bunu üretmek için kullanılan değerler anlamaya gerekir. Bunu göreceli olarak kolayca zorlayabilirsin.
Bu, karma için varsayılan Magento değeridir.
9df78eab33525d08d6e5fb8d27136e95
Kısa cevap - hayır. Önbellek görüntüsünün URL'sini temel alarak temel görüntüyü döndürmenin bir yöntemi yoktur. Bununla birlikte, önbellek klasörünü ve karmasını kaldırırsanız, URL'nin ne olacağını sezebilmelisiniz, örneğin:
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
ön eke kadar üründen sonraki her şeyi kaldır (bu durumda, kaldır cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:
http://www.mysite.com/media/catalog/product/u/t/uti001_2.jpg
Belki de bununla başa çıkmanın daha iyi bir yolu, nesne modelini kullanmaktır:
$product = Mage::getModel('catalog/product')->load(42);
echo $product->getImage();
echo $product->getThumbnail();
Bu çalışıyor
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);