Magento 2'deki varsayılan ürün resimleri boyutlarını nasıl değiştirebilirim?


25

In magento 1.xx , biz yönetici görüntülerin küçük resim varsayılan değiştirebilir:

Sistem> Yapılandırma> Katalog

Ancak magento 2.0'da , buna izin verecek herhangi bir yapılandırma bulamadığım için tez değerini nasıl değiştirebilirim? Sorun şu ki ürün resimlerim büyük beyaz çizgilerle görüntüleniyor ve bunu önlemek istiyorum.

Yanıtlar:


39

Magento view.xml, uygulamanın tema düzeyinde tutulan denilen dosyayı kullanır .

Varsayılan temayı kullanıyorsanız Yani, örneğin, lumasen bulmalı view.xmlaltındavendor/magento/theme-frontend-luma/etc/view.xml

Bu dosyada, <images/>düğümün içinde <media>düğümü göreceksiniz .

<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>

Görüntülerin boyutu burada <image/>düğüm altında tutulur .

idNitelik değeri <image/>düğümü kod temeli başvurulmaktadır.

Örneğin:

<image id="related_products_list" type="small_image">
    <width>152</width>
    <height>190</height>
</image>

Görünüm dosyasında id değeri kullanılır 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;

Burada $imagegörüntü boyutunun değerini ifade eder:

<?php echo $block->getImage($_item, $image)->toHtml(); ?>

Temanın olmaması durumunda view.xml, view.xmldosyayı içeren bir geri dönüş teması (ana tema) kullanıyor olabilir .

<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>

İşte Magento/blankana tema.

view.xmlDosyanın değerlerini değiştirmek / üzerine yazmak durumunda, dosyanın tamamını view.xmlözel temanıza tamamen kopyalamanız ve değerleri değiştirmeniz gerekir.

view.xmlbir düğüm değeri geri dönüş sistemine sahip değilse, size özel bir düğümde bir düğümün değeri mevcut view.xml değilse , ana temasının view.xml değerine geri dönmeyecek demektir, bu nedenle tüm dosyanın kopyalanması gerekir.

Değerler değiştikten sonra koşmanız gerekecek

php bin/magento catalog:images:resize

Bu, yeni görüntü boyutlarını yeniden oluşturacaktır.


Teşekkürler. Bunun nerede üretildiğini asla bilemezdim. +1
andy jones

5
Bunun ne kadar fazla mühendislik yapıldığını ve henüz dokümantasyonda eksik olduğunu seviyorum. Bu isimleri bulmak için koda bakmak ya da db şemasını kazmak zorunda kalacaksınız.
Miguel Felipe Guillen Calo,

Cevabınız için teşekkür ederim, ama Son kurulum php bin/magento catalog:images:resize işleminin gerekmediğini (çok fazla zaman alıyor) bıktım ve buldum , önbelleği temizlemeliyiz ve sonra çalışacak.
Key Shang

@KeyShang haklısın, yeniden boyutlandırılmış görüntüler, zaten mevcut değilse çalışma zamanında oluşturulur. Bununla birlikte, bu komutu, üretimdeki performansa yardımcı olduğu için çalıştırmanız önerilir
Atish Goswami,

6

Magento ürünü, yoldaki resim boyutu boyutları için view.xml dosyasını kullanır. vendor / magento / theme-frontend-luma / etc / view.xml dizinindeki

Burada düğümün içindeki düğümü bulacaksınız.

View.xml dosyasını kopyalayın ve tema yolunuza koyun ve değişiklikleri yapın, app / design / frontend / MyThemePackage / MyTheme / etc / view.xml yazın.

<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="category_page_list" type="small_image">
             <width>270</width>
             <height>450</height>
        </image>
        ........
    </images>
</media>
......
</view>

Önbelleği temizleyin ve kategori listesi sayfasını yükleyin. Değişiklikleriniz yansıtılacaktır.


"Satıcı / magento / tema-frontend-luma / etc / view.xml" yolunu genişletmenin, hangi varsayılan tema paketine bağlı olarak "satıcı / magento / tema-frontend-boş / etc / view.xml" olabileceğine de dikkat edin kullan.
Dynomite

ürün detay sayfasındaki küçük resim boyutunu nasıl değiştirebilirim?
jafar pinjar

1

Görüntü boyutlarını doğrudan bunun gibi şablon dosyasında da belirtebilirsiniz:

<?php
/**
* @var $block \Magento\Catalog\Block\Product\Widget\NewWidget
*/
$image = 'new_products_content_widget_grid';
$items = $block->getProductCollection()->getItems();
$width = 100;
$height = 100;
foreach ($items as $_item) {
    $resizedUrl = $block->resizeImage($_item, $image , $width, $height)->getUrl();
    echo '<img src="'.$resizedUrl .'" alt="alt text" />';
}

Burada daha fazla örnek - https://nwdthemes.com/2017/12/19/magento-2-product-image-size/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.