私はこれが非常に便利だと思ったので、他の人に役立つ場合に備えて、私が何をしたかを説明したいと思いました.
いくつかの写真を含む基本的な変更されない情報 (about-us タイプのページ) を含むいくつかの静的ページを作成するために使用する静的ブロックがいくつかあります。写真は非常に大きく (Web ページの場合)、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; ?>">
サイズを変更した画像をサイズ変更したフォルダーに保存し、新しいサイズを画像ファイル名に追加して、何が起こっているかを簡単に確認してファイルを管理できるようにします。
読んでくれてありがとう!