Magento 2 - Giữ tỷ lệ hình ảnh sản phẩm


8

Tôi đang làm việc với Trang chuyên mục Magento 2.

Nhưng tôi không thể biết cách giữ tỷ lệ hình ảnh của sản phẩm.

Trong magento 1.x, tôi có thể lấy src hình ảnh để sử dụng mã bên dưới.

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

Nhưng trong magento 2, tôi có thể đặt kích thước hình ảnh trong tệp /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>

Tôi đã cố gắng nhập chiều cao bằng "tự động", nhưng nó không hoạt động.

Tôi cũng đã cố gắng chỉ nhập chiều rộng, nó cũng không hoạt động.

Và tôi đã tìm thấy mã bên dưới để hiển thị hình ảnh sản phẩm trong tệp Magento_Catalog / samples / sản phẩm / 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>

Bất cứ ai cũng biết làm thế nào để hiển thị hình ảnh sản phẩm với tỷ lệ hình ảnh giữ?

Câu trả lời:


9

Bạn có thể sử dụng mã dưới đây.

<?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; ?>" />

Bạn có thể giải thích sự khác biệt về mã giữa @Dmitry và @SH Patel không?
Suresh Chikani

+1 cho điều này. Với điều này, bạn cũng có thể thay đổi kích thước hình ảnh trong các mẫu email.
Chirag Parmar

2

Bạn có thể đặt "Giữ tỷ lệ khung hình ảnh sản phẩm" trong magento2 như magento 1.x bằng trình trợ giúp hình ảnh.

Bạn có thể sử dụng trình trợ giúp hình ảnh như thế này trong tệp danh sách: app \ code \ Magento \ Catalog \ view \ frontend \ samples \ sản phẩm \ list.phtml

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

<img src="<?php echo $_Imagehelper->init($_product, 'small_image')->keepAspectRatio(true)->resize('height', 'width'); ?>" />

Chúng ta có nên đặt chiều cao đầu tiên chiều rộng og đầu tiên trong resize()chức năng?
Học viên Magento
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.