Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento自定义模板-编辑灯箱大小_Magento - Fatal编程技术网

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

Magento自定义模板-编辑灯箱大小,magento,Magento,我正在使用一个定制的magento模板,它在产品页面上有一个灯箱。我可以在配置中将灯箱的最大宽度/高度设置为屏幕的百分比(即95%)。问题是,它然后使用这个作为默认值,所以即使它是一个非常小的图像,它也会将其延伸到屏幕的95%,并导致图像像素化 我希望它只使用这个百分比作为最大值,但如果实际图像小于此值,则它将使用实际图像尺寸 我发现了一个包含此代码的文件,我想我可能需要对其进行编辑,但我不确定如何在Magento中执行此操作: <?php $maxWidth = $zoomH

我正在使用一个定制的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}'";
?>

我这样做的方式是加载相对较大的图像作为基本产品图像。在呈现产品/视图时,构建一个js对象,该对象包含大图像的URL以及所需的任何缩略图。然后,lightbox应该使用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 } ?>
var-images={};
helper('catalog/image')->init($_product,'thumbnail',$_image->getFile())->resize(108,90);?>“alt=”“title=”“/>
images.bigsrc=“”
然后,您就有了一个js对象,其中包含您需要的任意大小图像的URL。将其传递到lightbox/fancybox等

你一定要根据你的需要来调整它——主要是在创建一个你可以使用的js对象方面

有关在mage中调整图像大小的一些信息:

我发现这段代码可能会有所帮助,但它似乎只在view.phtml文件中使用,而不是我试图编辑的文件中使用。$this->helper('catalog/image')->init($\u product,'image')->getOriginalHeight();不幸的是,对于某些产品,我们没有足够大的图像,因此如果图像小于屏幕的95%,我们需要它来加载原始大小的图像,而不需要将其放大。啊。这是个问题。我相信有一些方法可以获取原始高度(您的代码看起来很有希望).我仍然建议您构建一个数据对象以传递到您的lightbox。