Call-back icon  Sales: Call 877.832.5289 (N America)|310.295.4144 (International)

Magento

eCommerce Software for Online Growth

Magento Forum

   
Module de redimentionnement proportionnel des images
 
alphanono
Jr. Member
 
Total Posts:  12
Joined:  2008-03-24
Toul(54), France
 

Je ne sais pas pourquoi mais sur tous les projets que je croise, je ne trouve jamais de fonction de redimensionnement proportionnel des images. Alors c’est la première chose que je développe car avec mon type de clientèle, je préfère réaliser ce genre de module plutôt que de former mes clients à ajuster des images dans le bon format sous un logiciel de retouche photo.

Voici donc un module que j’ai nommé DirectResize en référence au même module que j’avais développé pour MODx CMS (http://www.modxcms.com) et qui a déjà fait bien du chemin.

Cette fois, Variant avait quasiment pensé à tout, il n’y avait plus que le système de calcul des proportions à intégrer.

Illustration en image :

Sans le module, c’est ici .
Avec le module (ratio 3)

Sans le module
Avec le module (ratio 2)

Je vous propose donc d’essayer vous aussi ce mini module. En attendant de savoir comment réaliser un Package à la Magento, je vous donne un Zip avec les fichiers dedans. A vous de la passer à l’ancienne sur votre FTP. Ce module est développé dans le référentiel Local et ne touche donc absolument pas au Core de Magento.

Pour le télécharger, c’est ici
directResize

Ensuite, dans les templates, vous pouvez changer ceux d’origine ou créer les vôtres pour modifier l’appel de classe resize en directResize et supprimer les attributs de height et width. Par exemple, avant, on avait ceci :

<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135, 135); ?>" width="135" height="135" alt="<?php echo $this->htmlEscape($_product->getName()) ?>"/>
et maintenant on doit avoir :
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->directResize(135, 135, 3); ?>" alt="<?php echo $this->htmlEscape($_product->getName()) ?>"/>

Si vous voulez changer cette info dans le template de liste de produit par defaut, il faut aller dans :
app/design/frontend/default/default/template/catalog/product/list.phtml
et modifier la ligne 93 pour l’affichage en mode grille.

La fonction directResize s’agrémente d’une troisième variable dans sa définition. Par exemple, dans directResize(135, 135, 3) je veux parler du 3. C’est ce qui défini le type de ratio à appliquer ... et c’est ce qui fait toute la différence. Donc, on spécifie une largeur, ensuite une hauteur puis le ratio.

Voyons les 5 possibilités de ratio :
0: redimensionnement aux dimensions exactes données
1: redimensionnement largeur fixée et hauteur calculée
2: redimensionnement hauteur fixée et largeur calculée
3: redimensionnement pour que l’image rentre proportionnellement dans la largeur et la hauteur fixées
4: redimensionnement pour que l’image couvre au plus juste la hauteur et la largeur fixées

Des exemples en image de cette variable, créés lors du développement pour MODx, sont visualisable ici :
http://netambition.dynalias.org/dr/installe/demor.html

Après, il vous restera bien sûr à adapter le CSS pour que les images s’affichent avec un valign bottom par exemple ...

----------------------------------------

J’attends vos retours d’essai et vos remarques ! wink

 Signature 

http://www.netambition.eu

 
Magento Community Magento Community
Magento Community
Magento Community
 
davy
Jr. Member
 
Total Posts:  20
Joined:  2008-01-21
 

Belle solution.
Merci

 
Magento Community Magento Community
Magento Community
Magento Community
 
airclic
Jr. Member
 
Total Posts:  17
Joined:  2008-04-14
 

Bonjour,

j’ai installé les fichiers par FTP.
J’ai ensuite essayé de remplacé dans le
app/design/frontend/default/default/template/catalog/product/view/media.phtml

<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(68, 68); ?>" width="68" height="68" />
par
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail')->directResize(68, 68, 3); ?>"/>
ou
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->directResize(68, 68, 3); ?>"/>

mais j’ai cette erreur:
Fatal error: Call to undefined method Mage_Catalog_Helper_Image::directResize() in /home/k1003/app/design/frontend/default/default/template/catalog/product/view/media.phtml

Faut il faire autre chose que publier les fichiers pour installer ce module ?

 
Magento Community Magento Community
Magento Community
Magento Community
 
alphanono
Jr. Member
 
Total Posts:  12
Joined:  2008-03-24
Toul(54), France
 

Bonjour,

Il n’y a normalement rien d’autre à faire.

Essayez peut-être en installant DirectResize depuis MagentoConnect.

 Signature 

http://www.netambition.eu

 
Magento Community Magento Community
Magento Community
Magento Community
 
airclic
Jr. Member
 
Total Posts:  17
Joined:  2008-04-14
 

OK, j’ai installé ce module depuis MagentoConnect et cela fonctionne parfaitement !

Par contre, pour configurer MagentoConnect j’ai du donner le droit d’écriture sur tout les fichiers du site, question sécurité c’est quand même pas du tout sérieux…
Sais tu quel sont les fichiers / répertoires qui doivent être en écriture lors de l’installation de ce module ?
Ou ajoute t’il les fichiers ? Ce module modifie des fichiers du core ?

Merci pour tes réponses, et pour cet indispensable module grin

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top
 
Sales: Call 877.832.5289 (North America) 310.295.4144 (International)
© Copyright 2008 Varien. Magento, eCommerce software, is a trademark of Irubin Consulting Inc. DBA Varien
Privacy Policy|Terms of Service
Magento Community Count
53144 users|475 users currently online|107144 forum posts