¿Cómo cargar varias imágenes en forma de cuadrícula del panel de administración?

8

Aquí, me gustaría subir varias imágenes en forma de cuadrícula del panel de administración en magento. Creo imágenes cargadas en forma de cuadrícula del panel de administración. Aquí adjunto mi codificación de carga de imágenes.

[....]

$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 la 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 matriz [] así como así 'name' => 'image[]',. No, no obtengo ningún resultado, aún se cargará una sola imagen. Cómo crear un concepto de carga de múltiples imágenes en magento. ¿Alguien puede ayudarme a resolver este problema? Guíeme.

VIVEK-MDU
fuente
1
También estoy realmente interesado en esta pregunta, eché un vistazo rápido y este bloque parece estar detrás del cargador de medios para productos Mage_Adminhtml_Block_Media_Uploader. Seguiré tu pregunta de cerca :)
Sander Mangel
Añadiendo multipleno tiene ningún efecto debido a esto: Varien_Data_Form_Element_Abstract::getHtmlAttributes. Allí encontrará los atributos del elemento que puede establecer. Tal vez debería escribir su renderizador de entrada personalizado que lo permita multiple.
Marius
1
Hola @SanderMangel ... Gracias por animarme ..:) -
VIVEK-MDU

Respuestas:

6

Continuando con mi comentario , así es como puedes lograr lo que necesitas.
Necesita 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 su _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 quiere ser "políticamente correcto" agréguelo de esta manera:

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

Esto le dirá a Magento que en su conjunto de campos actual, todos los campos con tipo imagedeben ser representados por su propia clase.

Ahora puede agregar su campo de forma similar a como 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.
No olvide reemplazar los marcadores de posición ( [Module]y otros) con sus valores.
[EDITAR]
Esta es básicamente la forma de anular / agregar cualquier tipo de entrada que desee. Cree su propia clase que debería extender la clase de entrada original (o Varien_Data_Form_Element_Abstractsi agrega una nueva) y declararla en la parte superior de_prepareForm

Marius
fuente
Hola @Marius ... Gracias por la guía adecuada ... Tengo una duda ... ¿cuál es referir [Entidad] y entidad dada en clase? ¿podría explicarlo ...?
VIVEK-MDU
@ VIVEK-MDU. Entidad es lo que estás editando. puede ser un producto, un artículo ... ¿Cuál es el nombre de clase de su formulario? A partir de eso, puedo decirte qué entidad debería ser. En teoría puede ser cualquier cosa. Incluso puede eliminar eso del nombre de la clase, pero lo agregué allí para mantener una coherencia en el código.
Marius
@Marius para múltiples, ¿tengo que crear un botón de archivo separado para cargar la imagen? o cómo puede manejar múltiples imágenes
Keyur Shah
@ Mario: Esto no funcionó para mí. Todavía cargar una carga de imagen. Por favor alguna sugerencia al respecto?
Sukeshini
1
Excelente! Esta pregunta debe ser protegida
Ahsan Horani
0

Utilizo este método para hacer lo mismo pero con el módulo, Aw_blogpero cuando agrego el

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

El formulario de la página para el blog de mi publicación es blanco.

PD: el campo cargar una imagen es un éxito, pero para múltiples no.

mymodule ingrese la descripción de la imagen aquí

Mohamed Amine Landolsi
fuente