Pregunta

Aquí, me gustaría cargar múltiples imágenes en forma de cuadrícula del panel de administración en Magento. Creo que la carga de imágenes en forma de cuadrícula del panel de administración. Aquí adjunté mi codificación de carga de imagen.

[....]

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

Cuando cambio una imagen de carga múltiple usando este argumento. 'multiple'=> 'multiple'Aquí mi código:

 [....]

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

Y también pongo el valor del nombre como una matriz [] como esta 'name' => 'image[]',. No, no obtengo ningún resultado, todavía se cargará una imagen única. Cómo crear múltiples concepto de carga de imágenes en Magento. ¿Alguien puede ayudarme a resolver este problema? Por favor, guíame.

¿Fue útil?

Solución

Continuo mi comentario, así es como puedes lograr lo que necesitas.
Debe crear su renderizador personalizado para el campo de imagen. Para esto, cree esta clase en su módulo:

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

Ahora en la parte superior de tu _prepareForm (Donde agrega sus campos) Agregue esta línea antes de agregar cualquier campo:

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

O si quieres ser "políticamente correcto", agrégalo de esta manera:

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

Esto le dirá a Magento que en su Fieldset actual, todos los campos con tipo image debe ser representado por su propia clase.

Ahora puede agregar su campo como similar a cómo lo hizo:

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

Eso es todo.
No olvide reemplazar a los marcadores de posición ([Module] y otros) con tus valores.
EDITAR
Esta es básicamente la forma de anular/agregar cualquier tipo de entrada que desee. Cree su propia clase que debe extender la clase de entrada original (o Varien_Data_Form_Element_Abstract Si agrega uno nuevo) y lo declara en la parte superior de _prepareForm

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top