J'essaie d'afficher une image miniature dans mon formulaire d'édition de module d'administration personnalisé comme celui-ci
En ce
moment, j'utilise ceci addfield
.
$fieldset->addField('main_image', 'image', array(
'label' => Mage::helper('ram')->__('Image'),
'required' => false,
'name' => 'main_image',
));
J'ai regardé lib/Varien/Data/Form/Element/Image.php
et trouvé ce code qui utilise des images URL ici.
public function getElementHtml()
{
$html = '';
if ((string)$this->getValue()) {
$url = $this->_getUrl();
if( !preg_match("/^http\:\/\/|https\:\/\//", $url) ) {
$url = Mage::getBaseUrl('media') . $url;
}
Mais je ne stocke pas d'images dans le dossier multimédia de ce module. Je télécharge des images du contrôleur dans le ram_images
dossier.
$path = Mage::getBaseDir('media') . DS .'ram_images' ;
$uploader->save($path, $_FILES['main_image']['name'] );
De plus, je ne pouvais pas changer l'URL du Image.php
fichier car cela affecterait les autres modules du système. y a-t-il une solution de contournement ici. Veuillez suggérer une solution.
Et je veux également supprimer l'image en utilisant la case à cocher fournie sous le bouton de téléchargement.
Merci.
Ajouter
'enctype'’ ⇒ 'multipart/form-data'
Cela devrait aider à obtenir quelque chose$_FILES
dans /app/code/local/Chilly/ModName/Block/Adminhtml/ModName/Edit/Form.php
Vous devriez avoir quelque chose qui ressemble à ceci:
Puis dans /app/code/local/Chilly/ModName/Block/Adminhtml/ModName/Edit/Tab/Form.php
Puis dans /app/code/local/Chilly/ModName/controllers/Adminhtml/ModuleNameController.php dans
saveAction()
Le formulaire d'édition de votre sera afficher l'image comme ..
la source
$path = Mage::getBaseDir('media') . DS .'ram_images';
ce chemin pour télécharger des images.Je pense que j'ai ici une solution simple pour afficher une image miniature.
juste enregistré le nom du dossier aussi dans le tableau et cela a fonctionné.
Pour supprimer l'image vient d'ajouter le code suivant à la
saveAction()
fonction des contrôleurs de module .Ça a marché.
la source
image