アップロードされた画像をカスタムモジュール形式でプレビューする方法
-
13-12-2019 - |
質問
マゼントを学んで、レストランでシェフを管理するモジュールを作ろうとしています。画像をアップロードするためのアップロードボタンを作成し、それが機能します(画像はディレクトリ内で保存、データベースに保存されているファイル名)。
しかし、画像がアップロードされたときに、ボタンの横にある画像の小さなプレビューがある方法がわからない(カタログ画像をアップロードするときに)。現時点では、「編集」をクリックしてシェフ情報を編集すると、画像フィールドはすでにアップロードした場合、またはNOTの場合は同じように見えます。
これは私のフィールドです:
$fieldset->addField('image_url', 'image', array(
'label' => Mage::helper('tressympa_cheflist')->__('Profile Picture'),
'required' => false,
'name' => 'image_url',
));
.
提案?ありがとうございました!
解決
あなたの完全なパスを使って画像名を保存します。
media/{yourfolder}/imagename.jpg
.
yourfolder/imagename.jpg
編集フォームで自動的に表示されます。
または
フィールドをレンダリングして画像を表示することができます
$fieldset->addField('image_url', 'image', array(
'label' => Mage::helper('tressympa_cheflist')->__('Profile Picture'),
'required' => false,
'renderer' => 'modulename/adminhtml_modulename_renderer_image',
'name' => 'image_url',
));
.
ファイルブロックを追加/ adminhtml / modulename / renderer / image.php
<?php
class NameSpace_ModuleName_Block_Adminhtml_ModuleName_Renderer_Image extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
public function render(Varien_Object $row) {
$html = '<img id="' . $this->getColumn()->getId() . '" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).$row->getData($this->getColumn()->getIndex()) . '"';
$html .= '/>';
return $html;
}
}
?>
. 他のヒント
media
の代わりにイメージをデフォルトのmedia/{yourfolder}/imagename.jpg
フォルダに保存する場合は、これを実現できます。
media/{yourfolder}/imagename.jpg => media/imagename.jpg
. 所属していません magento.stackexchange