我发现这非常有用,我想我会解释我做了什么,以防它帮助其他人。
我有一些静态块,用于构建一些具有基本不变信息(关于我们类型页面)的静态页面,其中包括一些照片。这些照片非常大(对于网页),我想使用 Magento 的调整大小工具。我能做到这一点的唯一方法就是使用这里的想法。我现在有一个块,当我想要一个带有多个参数的调整大小的图像时,我可以在任何 cms 静态页面/块上包含一个块。这就像一个子程序(我可以这么说吗?!;o)。无论如何,这就是我所做的。
块:
{{block type="core/template" name="display_resized_img" gimg="IMG_0559.JPG" gsize="300" gpath="/wysiwyg/ShopFront/" gclass="about-us" galt="The shop" template="utilities/display_resized_img.phtml"}}
和 phtml 代码文件:
<?php
/*
* Displays and resizes an image as requested from the block.
* The image is only resized if it hasn't been already.
*/
$img = $this->getData('gimg');
$size = $this->getData('gsize');
$path = $this->getData('gpath');
$class = $this->getData('gclass');
$alt = $this->getData('galt');
$resizePath = Mage::getBaseDir ('media') . $path . "resized/" . $size . $img;
if (!file_exists($resizePath)):
$imagePath = Mage::getBaseDir('media') . $path . $img;
$imageObj = new Varien_Image($imagePath);
$imageObj->constrainOnly(TRUE);
$imageObj->keepAspectRatio(TRUE);
$imageObj->keepFrame(FALSE);
$imageObj->resize($size, null);
$imageObj->save($resizePath);
endif;
$resizeUrl = Mage::getBaseUrl ('media') . $path . "resized/" . $size . $img;
?>
<img class="<?php echo $class; ?>" src="<?php echo $resizeUrl ?>" alt="<?php echo $alt; ?>">
注意我将调整大小的图像保存在调整大小的文件夹中,并将新大小添加到图像文件名中,以便我可以轻松查看正在发生的事情并管理文件。
谢谢阅读!