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