Как загрузить несколько изображений в форму сетки панели администратора?
-
16-10-2019 - |
Вопрос
Здесь я хотел бы загрузить несколько изображений в форму сетки панели администратора в 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