Ich versuche, ein Miniaturbild in meinem Bearbeitungsformular für benutzerdefinierte Verwaltungsmodule wie folgt anzuzeigen. Im
Moment verwende ich dies addfield
.
$fieldset->addField('main_image', 'image', array(
'label' => Mage::helper('ram')->__('Image'),
'required' => false,
'name' => 'main_image',
));
Ich habe mir lib/Varien/Data/Form/Element/Image.php
diesen Code angesehen und gefunden, der dort die URL der Bilder verwendet.
public function getElementHtml()
{
$html = '';
if ((string)$this->getValue()) {
$url = $this->_getUrl();
if( !preg_match("/^http\:\/\/|https\:\/\//", $url) ) {
$url = Mage::getBaseUrl('media') . $url;
}
Ich speichere jedoch keine Bilder im Medienordner für dieses Modul. Ich lade Bilder vom Controller in den ram_images
Ordner hoch.
$path = Mage::getBaseDir('media') . DS .'ram_images' ;
$uploader->save($path, $_FILES['main_image']['name'] );
Außerdem konnte ich die URL von der Image.php
Datei nicht ändern, da dies Auswirkungen auf andere Systemmodule hat. Gibt es hier eine Problemumgehung? Bitte schlagen Sie eine Lösung vor.
Außerdem möchte ich das Bild mithilfe des Kontrollkästchens unter der Schaltfläche zum Hochladen löschen.
Vielen Dank.
Hinzufügen
'enctype'’ ⇒ 'multipart/form-data'
Das sollte helfen, etwas in zu bekommen$_FILES
in /app/code/local/Chilly/ModName/Block/Adminhtml/ModName/Edit/Form.php
Sie sollten etwas haben, das so aussieht:
Dann in /app/code/local/Chilly/ModName/Block/Adminhtml/ModName/Edit/Tab/Form.php
Dann in /app/code/local/Chilly/ModName/controllers/Adminhtml/ModuleNameController.php in
saveAction()
Ihr Bearbeitungsformular wird wie folgt angezeigt:
quelle
$path = Mage::getBaseDir('media') . DS .'ram_images';
diesen Pfad, um Bilder hochzuladen.Ich glaube, ich habe hier eine einfache Lösung gefunden, um Miniaturbilder anzuzeigen.
habe gerade auch den Ordnernamen in der Tabelle gespeichert und es hat funktioniert.
Zum Löschen des Bildes wurde gerade der folgende Code zur
saveAction()
Funktion der Modulsteuerungen hinzugefügt .Es funktionierte.
quelle
image