我可以让Magento的产品视图中的图像有一个设定的宽度,但有一个流动的高度吗


Can I make the images in the product view of Magento have a set width, but a fluid height?

我正在为一家美术馆开发一个网站,因此他们所有的产品图像都有不同的宽度和高度,具体取决于艺术作品。我希望图像每次都显示630像素宽,但根据图像的不同,在页面上延伸的时间比其他图像长。目前,我知道我可以从中的media.php文件中调整产品图像的$bigImageX和$bigImage Y

/app/design/frontend/default/theme706/template/ecommerceteam/cloud-zoom/catalog/product/view

但这只允许我设置一个特定的宽度高度。如果我只设置高度,它会收缩,使宽度与高度相同。

<div class="product-img-box">
    <script type="text/javascript" src="http://citizen.bluelotuscreative.com/skin/frontend/default/theme706/js/klass.min.js"></script>
    <script type="text/javascript" src="http://citizen.bluelotuscreative.com/skin/frontend/default/theme706/js/code.photoswipe.jquery-3.0.5.js"></script>

    <div class="product-box-customs">
        <p class="product-image">
        <img src="http://citizen.bluelotuscreative.com/media/catalog/product/cache/1/image/630x630/9df78eab33525d08d6e5fb8d27136e95/placeholder/default/Citizen_Atelier_-_Ashley_Woodson_Bailey_2__2.jpg" alt="Test Product" title="Test Product" />    </p>
    </div>
</div>
$bigImageX  = 630;
$bigImageY = ???;
<div class="product-box-customs">
    <?php if ($product->getImage() != 'no_selection' && $product->getImage()): ?>
    <p class="product-image">
        <a  href='<?php echo $this->helper('catalog/image')->init($product, 'image')->resize($bigImageWidth, $bigImageHeight);?>' class = 'cloud-zoom' id='zoom1' rel="<?php echo implode($config, ',');?>">
            <img class="big" src="<?php echo $this->helper('catalog/image')->init($product, 'image')->resize($bigImageX, $bigImageY);?>" alt='' title="<?php echo $this->htmlEscape($this->getImageLabel());?>" />
        </a>
    </p>
    <?php else: ?>
    <p class="product-image">
        <?php
        $_img = '<img src="'.$this->helper('catalog/image')->init($product, 'image')->resize($bigImageX, $bigImageY).'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />';
        echo $outputHelper->productAttribute($product, $_img, 'image');
        ?>
    </p>

替换:

$this->helper('catalog/image')->init($product, 'image')->resize($bigImageWidth, $bigImageHeight);

有了这个:

$this->helper('catalog/image')->init($_product, 'image')
->constrainOnly(TRUE)
->keepAspectRatio(TRUE)
->keepFrame(FALSE)
->resize($bigImageWidth,null);
相关文章: