Magento korzysta z pliku o nazwie, view.xml
który jest utrzymywany na poziomie kompozycji aplikacji.
Na przykład, jeśli używasz domyślnego motywu luma
, powinieneś znaleźć view.xml
poniżejvendor/magento/theme-frontend-luma/etc/view.xml
W tym pliku zobaczysz <images/>
węzeł wewnątrz <media>
węzła.
<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>
Wymiary obrazów są utrzymywane tutaj pod <image/>
węzłem.
Wartość id
atrybutu <image/>
węzła jest przywoływana w bazie kodu.
Na przykład:
<image id="related_products_list" type="small_image">
<width>152</width>
<height>190</height>
</image>
Wartość identyfikatora jest używana w pliku widoku 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;
Tutaj $image
odnosi się do wartości rozmiaru obrazu tutaj:
<?php echo $block->getImage($_item, $image)->toHtml(); ?>
W przypadku gdy motyw nie ma view.xml
, może być używany motyw zastępczy (motyw nadrzędny), który zawiera view.xml
plik.
<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>
Oto Magento/blank
motyw nadrzędny.
W przypadku zmiany / zastąpienia wartości view.xml
pliku należy całkowicie skopiować cały view.xml
plik do niestandardowego motywu i zmienić wartości.
view.xml
nie ma systemu rezerwowego wartości węzła, co oznacza, że jeśli w węźle niestandardowym nie ma wartości węzła, nie view.xml
nastąpi powrót do wartości view.xml jego motywu nadrzędnego, dlatego należy skopiować cały plik.
Gdy zmiany wartości zostaną wykonane, będziesz musiał uruchomić
php bin/magento catalog:images:resize
Spowoduje to zregenerowanie nowych rozmiarów obrazu.
php bin/magento catalog:images:resize
nie potrzebuje (kosztuje dużo czasu) , wystarczy wyczyścić pamięć podręczną, a wtedy będzie działać.Produkt Magento używa pliku view.xml dla wymiarów rozmiaru obrazu u dostawcy ścieżki / magento / theme-frontend-luma / etc / view.xml
Tutaj znajdziesz węzeł wewnątrz węzła.
Skopiuj plik view.xml i umieść go w ścieżce motywu i wprowadź zmiany, powiedzmy app / design / frontend / MyThemePackage / MyTheme / etc / view.xml
Wyczyść pamięć podręczną i załaduj stronę listy kategorii. Twoje zmiany zostaną odzwierciedlone.
źródło
Możesz również określić wymiary obrazu bezpośrednio w pliku szablonu, jak poniżej:
Więcej próbek tutaj - https://nwdthemes.com/2017/12/19/magento-2-product-image-size/
źródło