Bagaimana cara mengunggah banyak gambar dalam formulir kisi panel admin?

8

Di sini, saya ingin mengunggah banyak gambar dalam formulir kisi panel admin di magento. Saya membuat unggah gambar dalam formulir kisi panel admin. Di sini saya melampirkan kode unggah gambar saya.

[....]

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

ketika saya mengubah beberapa gambar unggahan dengan menggunakan argumen ini. 'multiple'=> 'multiple' Ini kode saya:

 [....]

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

Dan saya juga meletakkan nilai nama sebagai array [] seperti ini 'name' => 'image[]',. Tidak, saya tidak mendapatkan hasil apa pun, gambar tunggal akan diunggah. Cara membuat konsep unggah banyak gambar di magento. Adakah yang bisa Bantu saya untuk menyelesaikan masalah ini. Tolong tuntun saya.

VIVEK-MDU
sumber
1
Saya benar-benar tertarik dengan pertanyaan ini, melihat sekilas dan blok ini tampaknya berada di belakang pengunggah media untuk produk Mage_Adminhtml_Block_Media_Uploader. Saya akan mengikuti pertanyaan Anda dengan cermat :)
Sander Mangel
Menambahkan multipletidak berpengaruh karena ini: Varien_Data_Form_Element_Abstract::getHtmlAttributes. Di sana Anda akan menemukan atribut elemen yang diizinkan untuk Anda atur. Mungkin Anda harus menulis renderer input khusus yang memungkinkan multiple.
Marius
1
Hai @SanderMangel ... Terima kasih telah menyemangati saya ..:) -
VIVEK-MDU

Jawaban:

6

Melanjutkan komentar saya , berikut adalah bagaimana Anda dapat mencapai apa yang Anda butuhkan.
Anda perlu membuat perender kustom untuk bidang gambar. Untuk ini, buat kelas ini di modul Anda:

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

Sekarang di bagian atas _prepareForm(tempat Anda menambahkan bidang), tambahkan baris ini sebelum menambahkan bidang apa pun:

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

Atau jika Anda ingin "benar secara politis" tambahkan dengan cara ini:

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

Ini akan memberi tahu Magento bahwa di bidang Anda saat ini, semua bidang dengan tipe imageharus dirender oleh kelas Anda sendiri.

Sekarang Anda dapat menambahkan bidang Anda seperti mirip dengan bagaimana Anda melakukannya:

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

Itu dia.
Jangan lupa ganti placeholder ( [Module]dan lainnya) dengan nilai Anda.
[EDIT]
Ini pada dasarnya adalah cara untuk mengganti / menambah jenis input apa pun yang Anda inginkan. Buat kelas Anda sendiri yang harus memperluas kelas input asli (atau Varien_Data_Form_Element_Abstractjika Anda menambahkan yang baru) dan mendeklarasikannya di bagian atas_prepareForm

Marius
sumber
Hai @Marius ... Terima kasih atas panduan yang tepat..Saya punya satu keraguan..apa yang dimaksud [entitas] dan entitas yang diberikan di kelas? tolong jelaskan ...
VIVEK-MDU
@ VIVEK-MDU. Entitas adalah apa yang Anda edit. itu bisa berupa produk, artikel ... Apa nama kelas formulir Anda? Dari situ saya bisa memberi tahu Anda seperti apa entitas itu. Secara teori itu bisa apa saja. Anda bahkan dapat menghapusnya dari nama kelas tetapi saya menambahkannya di sana untuk menjaga konsistensi dalam kode.
Marius
@Marius untuk banyak saya harus membuat tombol file terpisah untuk mengunggah gambar? atau bagaimana ia dapat menangani banyak gambar
Keyur Shah
@Marius: Ini tidak berhasil untuk saya. Masih memuat satu unggahan gambar. Tolong ada saran tentang itu?
Sukeshini
1
Luar biasa! Pertanyaan ini harus dilindungi
Ahsan Horani
0

Saya menggunakan metode ini untuk membuat hal yang sama tetapi dengan modul Aw_blogtetapi ketika saya menambahkan

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

Formulir halaman untuk blog posting saya berwarna putih.

PS: bidang mengunggah satu gambar adalah sukses tetapi untuk banyak tidak.

modul saya masukkan deskripsi gambar di sini

Mohamed Amine Landolsi
sumber