Magento 2 - Produktbild-Seitenverhältnis beibehalten


8

Ich arbeite mit Magento 2 Category Page.

Aber ich konnte nicht wissen, wie ich die Seitenverhältnisse des Produktbildes beibehalten sollte.

In Magento 1.x kann ich das Bild src dazu bringen, den folgenden Code zu verwenden.

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

In Magento 2 kann ich die Bildgrößen in der Datei /app/design/frontend/Magento/luma/etc/view.xml festlegen.

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

Ich habe versucht, die Höhe mit "auto" einzugeben, aber es hat nicht funktioniert.

Ich habe auch versucht, nur width einzugeben, es hat auch nicht funktioniert.

Und ich habe unten Code zum Anzeigen von Produktbildern in der Datei Magento_Catalog / templates / product / list.phtml gefunden.

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

Weiß jemand, wie man die Produktbilder mit Bildseitenverhältnissen zeigt?

Antworten:


9

Sie können den folgenden Code verwenden.

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

Können Sie Codeunterschiede zwischen @Dmitry und @SH Patel erklären?
Suresh Chikani

+1 dafür. Damit können Sie die Bildgröße auch in E-Mail-Vorlagen ändern.
Chirag Parmar

2

Sie können in Magento2 wie in magento 1.x mithilfe des Bildhelfers "Produktbild-Seitenverhältnis beibehalten" einstellen.

Sie können den Bild-Helper wie diesen in der Listendatei verwenden : app \ code \ Magento \ Catalog \ 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'); ?>" />

Sollten wir in der resize()Funktion zuerst die Höhe und dann die Breite angeben?
Magento Learner
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.