Magento自定义模板 - 编辑灯箱大小

时间:2013-02-03 00:10:35

标签: magento

我正在使用自定义magento模板,该模板在产品页面上有一个灯箱。我可以将配置中灯箱的最大宽度/高度设置为屏幕的百分比(即95%)。问题是它然后使用它作为默认值,所以即使它是一个非常小的图像,它会将其拉伸到95%的屏幕并导致图像像素化。

我希望将此百分比仅用作最大值,但如果实际图像小于此值,则会使用实际图像尺寸。

我找到了一个包含此代码的文件,我想我可能需要编辑,但我不知道如何在Magento中进行此操作:

<?php
    $maxWidth   = $zoomHelper->getCfg('lightbox/max_width');
    $maxHeight  = $zoomHelper->getCfg('lightbox/max_height');
    $cfg = '';
    if ($maxWidth)
        $cfg .= ", maxWidth:'{$maxWidth}'";
    if ($maxHeight)
        $cfg .= ", maxHeight:'{$maxHeight}'";
?>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我这样做的方法是加载相对较大的图像作为基本产品图像。在渲染产品/视图时,构建一个js对象,其中包含大图像的URL以及您需要的任何缩略图。然后,您的灯箱应使用js对象作为数据源。

media.phtml

<script> var images = {};</script>

<?php $_images = Mage::getModel('catalog/product')->load($_product->getId())->getMediaGalleryImages(); ?>
<?php if($_images){?>            
    <?php $i=0; foreach($_images as $_image){ $i++; ?>
        <img src="<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail', $_image->getFile())->resize(108,90); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel());?>" title="<?php $this->htmlEscape($_image->getLabel());?>" /><?php } ?>

        <script> images.bigsrc = "<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail', $_image->getFile())->resize(800,800); ?>"  </script>
    <?php } ?>

然后,您有一个js对象,其中包含您需要的任何大小的图像的URL。将其传递到lightbox / fancybox等。

你肯定必须根据自己的需要定制它 - 主要是创建一个可以使用的js对象。

有关调整图像大小的一些信息: http://www.magthemes.com/magento-blog/customize-magentos-image-resize-functionality/