Risposte:
L'URL dell'immagine che hai fornito è impossibile da avere con un negozio Magento. Immagino che tu volessi che fosse offuscato, ma nel farlo hai reso impossibile rispondere.
Non riesco a pensare a nessun motivo per decostruire il percorso dell'immagine a meno che tu non stia raschiando web un altro sito Web, altrimenti, avresti accesso diretto al modello del prodotto e potresti recuperare direttamente queste informazioni.
Tuttavia, usando un esempio reale. Per esempio
/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
Se caricato tramite l'amministratore Magento , l'immagine originale si trova in,
Quindi ottenere l'URL originale è abbastanza semplice, basta rimuovere il percorso della directory della cache e l'hash.
Vale a dire. Rimuoverecache/1/image/9df78eab33525d08d6e5fb8d27136e95/
Così
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
diventa
/media/catalog/product/m/e/me-d1_2.jpg
Se caricato tramite flusso di dati / importazione , l'immagine originale si trova in
/ Media / import
Ma oltre ci sarebbero le congetture. Tuttavia, le persone vogliono formattare il loro DIR DIR per l'importazione dipende davvero da loro e la sottodirectory in cui si trovano le immagini non è davvero rilevante, in quanto forniscono il percorso relativo all'immagine durante il caricamento.
($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 facoltativi se è presente una filigrana
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Quindi, ad esempio, con le impostazioni predefinite
md5('non_no_no_not_ffffff_0_90')
L' md5
hash potrebbe essere lo stesso in tutto il sito - per ogni immagine, ma dovresti capire i valori usati per generarlo. Potresti forzarlo in modo relativamente semplice.
Questo è il valore Magento predefinito per l'hash
9df78eab33525d08d6e5fb8d27136e95
Attribuzioni: sonassi.com
Risposta breve - no. Non esiste un metodo per restituire l'immagine di base in base all'URL dell'immagine della cache. Tuttavia, se rimuovi la cartella della cache e l'hash dovresti essere in grado di intuire quale sarebbe l'URL, ad esempio:
http://www.mysite.com/media/catalog/product/cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/u/t/uti001_2.jpg
rimuovere tutto dopo il prodotto fino al prefisso trie (in questo caso, rimuovere cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:
http://www.mysite.com/media/catalog/product/u/t/uti001_2.jpg
Forse un modo migliore di affrontare questo, però, è usare il modello a oggetti:
$product = Mage::getModel('catalog/product')->load(42);
echo $product->getImage();
echo $product->getThumbnail();
Questo funziona
$r = explode('/' ,$imagesCachePath);
unset($r[6]);
unset($r[7]);
unset($r[8]);
unset($r[9]);
$r = implode('/',$r);