Come caricare più immagini nel modulo griglia del pannello di amministrazione?


8

Qui, vorrei caricare più immagini nel modulo griglia del pannello di amministrazione in magento. Creo il caricamento delle immagini nel modulo griglia del pannello di amministrazione. Qui ho allegato la mia codifica per il caricamento delle immagini.

[....]

$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
        ));
[....]

quando cambio immagine di caricamento multiplo usando questo argomento. 'multiple'=> 'multiple' Ecco il mio codice:

 [....]

    $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
            ));
    [....]

E ho anche messo il valore del nome come array [] proprio come questo 'name' => 'image[]',. No, non sto ottenendo alcun risultato, verrà comunque caricata una singola immagine. Come creare più concept di caricamento di immagini in magento. Qualcuno può aiutarmi a risolvere questo problema. Vi prego di guidarmi.


1
Sono davvero interessato anche a questa domanda, ho dato una rapida occhiata e questo blocco sembra essere dietro l'uploader multimediale per i prodotti Mage_Adminhtml_Block_Media_Uploader. Seguirò da vicino la tua domanda :)
Sander Mangel

L'aggiunta multiplenon ha alcun effetto a causa di questo: Varien_Data_Form_Element_Abstract::getHtmlAttributes. Lì troverai gli attributi degli elementi che ti è permesso impostare. Forse dovresti scrivere il tuo renderer di input personalizzato che lo consenta multiple.
Marius

1
Ciao @SanderMangel ... Grazie per incoraggiarmi ..
:)

Risposte:


6

Continuando il mio commento , ecco come puoi ottenere ciò di cui hai bisogno.
Devi creare il tuo renderer personalizzato per il campo immagine. Per questo crea questa classe nel tuo modulo:

<?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'));
    }
}

Ora nella parte superiore del tuo _prepareForm(dove aggiungi i campi) aggiungi questa riga prima di aggiungere qualsiasi campo:

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

O se vuoi essere "politicamente corretto" aggiungilo in questo modo:

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

Questo dirà a Magento che nel tuo attuale set di campi, tutti i campi con tipo imagedovrebbero essere resi dalla tua stessa classe.

Ora puoi aggiungere il tuo campo in modo simile a come l'hai fatto:

$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
        ));

Questo è tutto.
Non dimenticare di sostituire i segnaposto ( [Module]e altri) con i tuoi valori.
[EDIT]
Questo è fondamentalmente il modo per sovrascrivere / aggiungere qualsiasi tipo di input desiderato. Crea la tua classe che dovrebbe estendere la classe di input originale (o Varien_Data_Form_Element_Abstractse ne aggiungi una nuova) e dichiarala all'inizio_prepareForm


Ciao @Marius ... Grazie per la guida corretta..Ho un dubbio..quale riferimento [Entità] e entità sono dati in classe? puoi per favore spiegarlo ...
VIVEK-MDU

@ VIVEK-MDU. L'entità è ciò che stai modificando. può essere un prodotto, un articolo ... Qual è il nome della classe del tuo modulo? Da ciò posso dirti quale entità dovrebbe essere. In teoria può essere qualsiasi cosa. Puoi anche rimuoverlo dal nome della classe ma l'ho aggiunto lì per mantenere una coerenza nel codice.
Marius

@Marius per più devo creare un pulsante file separato per caricare l'immagine? o come può gestire più immagini
Keyur Shah

@Marius: questo non ha funzionato per me. Carica ancora un caricamento di immagine. Per favore qualche suggerimento al riguardo?
Sukeshini,

1
Eccellente! Questa domanda dovrebbe essere protetta
Ahsan Horani,

0

Uso questo metodo per fare la stessa cosa ma con il modulo Aw_blogma quando aggiungo il file

$fieldset->addType('image', Mage::getConfig()->getBlockClassName('aw_blog/adminhtml_blog_helper_image'));

Il modulo della pagina per il blog del mio post è bianco.

PS: il campo di caricamento di un'immagine è un successo, ma per più no.

mymodule inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.