Magento 2 - Menjaga Rasio Aspek Gambar Produk

8

Saya bekerja dengan Halaman Kategori Magento 2.

Tetapi saya tidak tahu bagaimana menjaga rasio aspek gambar produk.

Di magento 1.x, saya bisa mendapatkan gambar src untuk menggunakan kode di bawah ini.

<?php
    echo $this->helper('catalog/image')
    ->init($_product, 'small_image')
    ->constrainOnly(FALSE)
    ->keepAspectRatio(TRUE)
    ->keepFrame(FALSE)
    ->resize(300);
?>

Tetapi di magento 2, saya dapat mengatur ukuran gambar di file /app/design/frontend/Magento/luma/etc/view.xml.

<image id="category_page_grid" type="small_image">
    <width>240</width>
    <height>300</height>
</image>
<image id="category_page_list" type="small_image">
    <width>240</width>
    <height>300</height>
</image>

Saya mencoba memasukkan ketinggian dengan "otomatis", tetapi tidak berhasil.

Saya juga mencoba memasukkan hanya lebar, tidak berhasil juga.

Dan saya menemukan kode di bawah ini untuk menampilkan gambar produk di file Magento_Catalog / templates / product / list.phtml.

<?php
    $productImage = $block->getImage($_product, $image);
?>
<a href="<?php echo $_product->getProductUrl() ?>" class="product photo product-item-photo" tabindex="-1">
    <?php echo $productImage->toHtml(); ?>
</a>

Adakah yang tahu cara menampilkan gambar produk dengan menjaga rasio aspek Gambar?

John
sumber

Jawaban:

9

Anda dapat menggunakan kode di bawah ini.

<?php
    //$image = 'category_page_grid' or 'category_page_list';
    $_imagehelper = $this->helper('Magento\Catalog\Helper\Image');

    $productImage = $_imagehelper->init($_product, $image)->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(400)->getUrl();
?>

<img src="<?php echo $productImage; ?>" />
Mike
sumber
Bisakah Anda menjelaskan perbedaan kode antara @Dmitry dan @SH Patel?
Suresh Chikani
+1 untuk ini. Dengan ini Anda dapat mengubah ukuran gambar di templat email juga.
Chirag Parmar
2

Anda dapat mengatur "Rasio Aspek Gambar Produk" di magento2 seperti magento 1.x menggunakan penolong gambar.

Anda dapat menggunakan pembantu gambar seperti ini dalam file daftar: app \ code \ Magento \ Catalogue \ view \ frontend \ templates \ product \ list.phtml

$_Imagehelper = $this->helper('Magento\Catalog\Helper\Image');

<img src="<?php echo $_Imagehelper->init($_product, 'small_image')->keepAspectRatio(true)->resize('height', 'width'); ?>" />
Suresh Chikani
sumber
Haruskah kita menempatkan tinggi pertama dan lebar pertama dalam resize()fungsi?
Magento Learner