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.