Как загрузить несколько изображений в форму сетки панели администратора?

magento.stackexchange https://magento.stackexchange.com/questions/8816

Вопрос

Здесь я хотел бы загрузить несколько изображений в форму сетки панели администратора в Magento. Я создаю загрузку изображений в форме сетки панели администратора. Здесь я прикрепил кодирование моего изображения.

[....]

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

Когда я меняю несколько изображений загрузки, используя этот аргумент. 'multiple'=> 'multiple'Здесь мой код:

 [....]

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

А также я ставлю значение имени как массив [] Точно так же 'name' => 'image[]',Анкет Нет, я не получаю никакого результата, все еще будет загружено одно изображение. Как создать концепцию загрузки нескольких изображений в Magento. Может ли кто -нибудь помочь мне решить эту проблему. Пожалуйста, направляйте меня.

Это было полезно?

Решение

Продолжение Мой комментарий, Вот как вы можете достичь того, что вам нужно.
Вам нужно создать свой пользовательский рендеринг для поля изображения. Для этого создайте этот класс в вашем модуле:

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

Теперь на вершине вашего _prepareForm (где вы добавляете свои поля) Добавьте эту строку перед добавлением любого поля:

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

Или если вы хотите быть "политкорректным", добавьте это таким образом:

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

Это скажет Magento, что в вашем нынешнем поля, все поля с типом image Должен быть представлен вашим собственным классом.

Теперь вы можете добавить свое поле, похожее на то, как вы это сделали:

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

Вот и все.
Не забудьте заменить заполнители ([Module] и другие) с вашими ценностями.
РЕДАКТИРОВАТЬ
Это в основном способ переопределить/добавить любой входной тип, который вы хотите. Создайте свой собственный класс, который должен расширить исходный класс ввода (или Varien_Data_Form_Element_Abstract Если вы добавите новый) и объявите его на вершине _prepareForm

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top