Como visualizar a imagem carregada no formulário de módulo personalizado
-
13-12-2019 - |
Pergunta
Estou aprendendo Magento e tentando fazer um módulo para gerenciar Chefs em um Restaurante.Criei um botão de upload para fazer upload de imagem e funciona (imagens salvas no diretório, nome do arquivo salvo no banco de dados).
Mas não sei como ter uma pequena visualização da imagem ao lado do botão quando a imagem for carregada (como ao carregar a imagem do catálogo).No momento, quando clico em "editar" para editar as informações do Chef, o campo Imagem fica igual se eu já carreguei a imagem ou não.
Aqui está meu campo:
$fieldset->addField('image_url', 'image', array(
'label' => Mage::helper('tressympa_cheflist')->__('Profile Picture'),
'required' => false,
'name' => 'image_url',
));
Alguma sugestão?Muito obrigado!
Solução
salve o nome da imagem com seu caminho completo.
media/{yourfolder}/imagename.jpg
salvar no banco de dados com yourfolder/imagename.jpg
ele será exibido automaticamente no formato de edição.
OU
você pode renderizar o campo e mostrar a imagem
$fieldset->addField('image_url', 'image', array(
'label' => Mage::helper('tressympa_cheflist')->__('Profile Picture'),
'required' => false,
'renderer' => 'modulename/adminhtml_modulename_renderer_image',
'name' => 'image_url',
));
adicione seu arquivo Block/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;
}
}
?>
Outras dicas
Você pode conseguir isso se salvar sua imagem no padrão media
pasta em vez de media/{yourfolder}/imagename.jpg
como alterar o caminho da imagem
media/{yourfolder}/imagename.jpg => media/imagename.jpg