L'URL de l'image que vous avez fournie est impossible à obtenir avec un magasin Magento. J'imagine que vous vouliez que ce soit obscurci, mais cela a rendu impossible toute réponse.
Je ne vois aucune raison de déconstruire le chemin de l'image à moins de gratter un autre site Web sur le Web. Dans le cas contraire, vous auriez un accès direct au modèle de produit et pourriez récupérer directement ces informations.
Néanmoins, en utilisant un exemple réel. Par exemple
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
De construire le chemin de l'image du cache
/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
Localisation de l'image d'origine
Si téléchargé via l’administrateur de Magento , l’image originale se trouve à,
/media/catalog/product/m/e/me-d1_2.jpg
Donc, obtenir l'URL d'origine est assez facile, il suffit de supprimer le chemin du répertoire de cache et le hachage.
C'est à dire. Retirercache/1/image/9df78eab33525d08d6e5fb8d27136e95/
Alors
/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/m/e/me-d1_2.jpg
Devient
/media/catalog/product/m/e/me-d1_2.jpg
Si téléchargé via dataflow / import , l'image originale se trouve dans
/ media / import
Mais au-delà, il y aurait des conjectures. Cependant, les utilisateurs souhaitent formater leur répertoire de téléchargement pour l'importation, c'est leur choix et le sous-répertoire dans lequel les images se trouvent n'a vraiment aucune pertinence, car ils fournissent le chemin d'accès relatif à l'image lors du téléchargement.
Un peu sur le md5 Hash
($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,
Arguments optionnels s'il y a un filigrane
$this->getWatermarkFile(),
$this->getWatermarkImageOpacity(),
$this->getWatermarkPosition(),
$this->getWatermarkWidth(),
$this->getWatermarkHeigth()
md5(implode('_', $miscParams));
Donc, par exemple, avec les valeurs par défaut
md5('non_no_no_not_ffffff_0_90')
Le md5
hachage pourrait être le même sur tout le site - pour chaque image, mais vous auriez besoin de déterminer les valeurs utilisées pour le générer. Vous pouvez le forcer assez facilement.
C'est la valeur par défaut de Magento pour le hachage
9df78eab33525d08d6e5fb8d27136e95
Attributions: sonassi.com
Réponse courte - non. Il n'existe aucune méthode pour renvoyer l'image de base en fonction de l'URL de l'image cache. Cependant, si vous supprimez le dossier de cache et le hachage, vous devriez être en mesure de deviner ce que serait l'URL, par exemple:
tout supprimer après le produit jusqu'au préfixe trie (dans ce cas, supprimer
cache/1/image/109x298/9df78eab33525d08d6e5fb8d27136e95/
:Cependant, une meilleure façon de gérer cela consiste à utiliser le modèle objet:
la source
Cela marche
la source
Dans le
list.phtml
, voici ce qui a fonctionné pour moi:la source