Frage

Hier möchte ich in Magento mehrere Image im Admin -Panel -Gitterformular hochladen. Ich erstelle Bilder, die im Admin -Panel -Netzformular hochladen. Hier habe ich mein Bild -Upload -Codieren angehängt.

[....]

$fieldset->addField('image', 'image', array(
            'name'      => 'image',
            'label'     => Mage::helper('magentostudy_design')->__('design Image'),
            'title'     => Mage::helper('magentostudy_design')->__('design Image'),
            'required'  => true,
            'disabled'  => $isElementDisabled
        ));
[....]

Wenn ich mehrere Upload -Bild mit diesem Argument ändere. 'multiple'=> 'multiple'Hier mein Code:

 [....]

    $fieldset->addField('image', 'image', array(
                'name'      => 'image',
                'multiple'  => 'multiple',
                'mulitple'  => true,
                'label'     => Mage::helper('magentostudy_design')->__('design Image'),
                'title'     => Mage::helper('magentostudy_design')->__('design Image'),
                'required'  => true,
                'disabled'  => $isElementDisabled
            ));
    [....]

Und auch ich setze den Namenswert als Array [] so ein 'name' => 'image[]',. Nein, ich bekomme kein Ergebnis, immer noch ein einzelnes Bild wird hochgeladen. So erstellen Sie ein multiple Image -Upload -Konzept in Magento. Kann mir jemand helfen, dieses Problem zu lösen? Bitte führen Sie mich an.

War es hilfreich?

Lösung

Auch weiterhin mein Kommentar, Hier ist, wie Sie das erreichen können, was Sie brauchen.
Sie müssen Ihren benutzerdefinierten Renderer für das Bildfeld erstellen. Erstellen Sie diese Klasse in Ihrem Modul:

<?php 
class [Namespace]_[Module]_Block_Adminhtml_[Entity]_Helper_Image extends Varien_Data_Form_Element_Image{
    //make your renderer allow "multiple" attribute
    public function getHtmlAttributes(){
        return array_merge(parent::getHtmlAttributes(), array('multiple'));
    }
}

Jetzt oben in Ihrem _prepareForm (Wo Sie Ihre Felder hinzufügen) Fügen Sie diese Zeile hinzu, bevor Sie ein Feld hinzufügen:

$fieldset->addType('image', '[Namespace]_[Module]_Block_Adminhtml_[Entity]_Helper_Image');

Oder wenn Sie "politisch korrekt" sein möchten, fügen Sie es so hinzu:

$fieldset->addType('image', Mage::getConfig()->getBlockClassName('[module]/adminhtml_[entity]_helper_image'));

Dies wird Magento mitteilen, dass in Ihrem aktuellen Fieldset alle Felder mit Typ image sollte von Ihrer eigenen Klasse gerendert werden.

Jetzt können Sie Ihr Feld hinzufügen, wie es ähnlich wie Sie es gemacht haben:

$fieldset->addField('image', 'image', array(
            'name'      => 'image[]', //declare this as array. Otherwise only one image will be uploaded
            'multiple'  => 'multiple', //declare input as 'multiple'
            'label'     => Mage::helper('magentostudy_design')->__('design Image'),
            'title'     => Mage::helper('magentostudy_design')->__('design Image'),
            'required'  => true,
            'disabled'  => $isElementDisabled
        ));

Das ist es.
Vergessen Sie nicht, die Platzhalter zu ersetzen ([Module] und andere) mit deinen Werten.
BEARBEITEN
Dies ist im Grunde die Möglichkeit, einen gewünschten Eingangstyp zu überschreiben/hinzuzufügen. Erstellen Sie Ihre eigene Klasse, die die ursprüngliche Eingangsklasse erweitern sollte (oder Varien_Data_Form_Element_Abstract Wenn Sie eine neue hinzufügen) und an der Spitze deklarieren _prepareForm

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top