Magento utilise le fichier appelé view.xml
qui est maintenu au niveau du thème de l'application.
Ainsi, par exemple, si vous utilisez le thème par défaut, luma
vous devriez trouver le view.xml
sousvendor/magento/theme-frontend-luma/etc/view.xml
Dans ce fichier, vous verriez un <images/>
nœud à l'intérieur du <media>
nœud.
<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
<media>
<images module="Magento_Catalog">
<image id="bundled_product_customization_page" type="thumbnail">
<width>140</width>
<height>140</height>
</image>
<image id="cart_cross_sell_products" type="thumbnail">
<width>200</width>
<height>248</height>
</image>
<image id="cart_page_product_thumbnail" type="small_image">
<width>165</width>
<height>165</height>
</image>
........
</images>
</media>
......
</view>
La dimension des images est maintenue ici sous le <image/>
nœud.
La id
valeur d'attribut du <image/>
nœud est référencée dans la base de code.
Par exemple:
<image id="related_products_list" type="small_image">
<width>152</width>
<height>190</height>
</image>
La valeur id est utilisée dans le fichier de vue vendor/magento/module-catalog/view/frontend/templates/product/list/items.phtml
case 'related':
/** @var \Magento\Catalog\Block\Product\ProductList\Related $block */
if ($exist = $block->getItems()->getSize()) {
$type = 'related';
$class = $type;
$image = 'related_products_list';
$title = __('Related Products');
$items = $block->getItems();
$limit = 0;
$shuffle = 0;
$canItemsAddToCart = $block->canItemsAddToCart();
$showWishlist = true;
$showCompare = true;
$showCart = false;
$templateType = null;
$description = false;
}
break;
Ici, le $image
fait référence à la valeur de la taille de l'image ici:
<?php echo $block->getImage($_item, $image)->toHtml(); ?>
Dans le cas où le thème n'en a pas view.xml
, il peut utiliser un thème de secours (thème parent) view.xml
contenant le fichier.
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Magento Luma</title>
<parent>Magento/blank</parent>
.....
</theme>
Voici Magento/blank
le thème parent.
En cas de modification / remplacement des valeurs du view.xml
fichier, vous devez copier complètement le view.xml
fichier entier dans votre thème personnalisé et modifier les valeurs.
view.xml
n'a pas de système de secours de valeur de nœud, signifie que si une valeur d'un nœud n'est pas présente dans votre thème personnalisé, view.xml
elle ne reviendra pas à la valeur view.xml de son thème parent, c'est pourquoi tout le fichier doit être copié.
Une fois les changements de valeurs effectués, vous devrez exécuter
php bin/magento catalog:images:resize
Cela régénérera les nouvelles tailles d'image.
php bin/magento catalog:images:resize
n'a pas besoin (cela coûte beaucoup de temps) , nous avons juste besoin de vider le cache et cela fonctionnera.Le produit Magento utilise le fichier view.xml pour les dimensions de la taille de l'image dans le chemin du vendeur / magento / theme-frontend-luma / etc / view.xml
Ici, vous trouverez un nœud à l'intérieur du nœud.
Copiez le fichier view.xml et placez-le dans votre chemin de thème et apportez les modifications, par exemple app / design / frontend / MyThemePackage / MyTheme / etc / view.xml
Videz le cache et chargez la page de liste des catégories. Vos modifications seront reflétées.
la source
Vous pouvez également spécifier les dimensions de l'image directement dans le fichier de modèle comme ceci:
Plus d'exemples ici - https://nwdthemes.com/2017/12/19/magento-2-product-image-size/
la source