質問
私の質問は、製品画像キャッシュ内で画像がどのように、いつ作成されるかについてです。具体的には、このコードが実行された場合:
$imageTag ='<br><img src="'.Mage::helper('catalog/image')->init($product ,
'small_image')->resize(75).'" border="0" />';
そして、次のディレクトリには777の権限があります。
/media/catalog/product/cache/1/small_image/
しかし、ノーはありません 75x/
サブディレクトリ、そのディレクトリが作成され、サイズ変更された画像が正しい場所に保存されますか?または、Magentoヘルパーを使用してサイズ変更された画像のURLを取得しようとする前に、そのディレクトリを(他のプロセスを通じて)利用できる必要がありますか?
解決
この答えを読んでください、 https://magento.stackexchange.com/a/1008/361
URL内の数値は、画像のスケールまたはピクセルの寸法を表していません - それはストアビューです。
すべてのディレクトリ/ファイルは、フロントエンドが表示され、サイズ変更コードが実行される瞬間に自動的に作成されます。そうです それ 単純。
他のヒント
そのディレクトリは自動的に作成されます。フロントエンドの開発者は、ディレクトリを作成することなく、定期的にサイズを変更します。
<?php
$_file_name = $cat->getThumbnail(); // Here $cat is category data array
$_media_dir = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'category' . DS;
$cache_dir = $_media_dir . 'resize' . DS; // Here i create a resize folder. for upload new category image
if (file_exists($cache_dir . $_file_name)) {
$catImg =Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
} elseif (file_exists($_media_dir . $_file_name)) {
if (!is_dir($cache_dir)) {
mkdir($cache_dir);
}
$_image = new Varien_Image($_media_dir . $_file_name);
$_image->constrainOnly(true);
$_image->keepAspectRatio(false);
$_image->keepFrame(false);
$_image->keepTransparency(true);
$_image->resize(224, 174); // change image height, width
$_image->save($cache_dir . $_file_name);
$catImg = Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
}
echo $catImg ; // display resize category thumbnail imagename
?>
<img src="<?php echo $catImg; ?>" />
問題の解決策を見つけました ここ
所属していません magento.stackexchange