Comment télécharger plusieurs images sous forme de grille de panneau d'administration?


8

Ici, je voudrais télécharger plusieurs images sous forme de grille de panneau d'administration dans magento. Je crée des images téléchargées sous forme de grille de panneau d'administration. Ici, j'ai joint mon codage de téléchargement d'image.

[....]

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

lorsque je change plusieurs images de téléchargement en utilisant cet argument. 'multiple'=> 'multiple' Voici mon code:

 [....]

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

Et aussi je mets la valeur du nom en tant que tableau [] comme ça 'name' => 'image[]',. Non, je n'obtiens aucun résultat, une seule image sera téléchargée. Comment créer plusieurs concepts de téléchargement d'images dans magento. Quelqu'un peut-il m'aider à résoudre ce problème, veuillez me guider.


1
Je suis également très intéressé par cette question, j'ai jeté un coup d'œil rapide et ce bloc semble être derrière le téléchargeur de médias pour les produits Mage_Adminhtml_Block_Media_Uploader. Je suivrai votre question de près :)
Sander Mangel

L' ajout multiplen'a pas d' effet à cause de cela: Varien_Data_Form_Element_Abstract::getHtmlAttributes. Vous y trouverez les attributs d'élément que vous êtes autorisé à définir. Peut-être que vous devriez écrire votre rendu d'entrée personnalisé qui le permet multiple.
Marius

1
Salut @SanderMangel ... Merci de m'encourager ..
:)

Réponses:


6

Poursuivant mon commentaire , voici comment vous pouvez obtenir ce dont vous avez besoin.
Vous devez créer votre rendu personnalisé pour le champ d'image. Pour cela, créez cette classe dans votre module:

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

Maintenant, en haut de votre _prepareForm(où vous ajoutez vos champs), ajoutez cette ligne avant d'ajouter un champ:

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

Ou si vous voulez être "politiquement correct", ajoutez-le de cette façon:

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

Cela indiquera à Magento que dans votre jeu de champs actuel, tous les champs de type imagedoivent être rendus par votre propre classe.

Vous pouvez maintenant ajouter votre champ de la même manière que vous l'avez fait:

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

C'est ça.
N'oubliez pas de remplacer les espaces réservés ( [Module]et autres) par vos valeurs.
[EDIT]
C'est essentiellement la façon de remplacer / ajouter n'importe quel type d'entrée que vous voulez. Créez votre propre classe qui devrait étendre la classe d'entrée d'origine (ou Varien_Data_Form_Element_Abstractsi vous en ajoutez une nouvelle) et déclarez-la en haut de_prepareForm


Salut @Marius ... Merci u pour le guide approprié .. J'ai un doute..qui fait référence [Entité] et entité donnée en classe? pouvez-vous l'expliquer ...
VIVEK-MDU

@ VIVEK-MDU. L'entité est ce que vous modifiez. ça peut être un produit, un article ... Quel est le nom de classe de votre formulaire? De là, je peux vous dire quelle entité devrait être. En théorie, cela peut être n'importe quoi. Vous pouvez même supprimer cela du nom de la classe mais je l'ai ajouté là pour garder une cohérence dans le code.
Marius

@Marius pour plusieurs je dois créer un bouton de fichier séparé pour télécharger l'image? ou comment il peut gérer plusieurs images
Keyur Shah

@Marius: Cela n'a pas fonctionné pour moi. Chargez toujours un téléchargement d'image. S'il vous plaît des suggestions à ce sujet?
Sukeshini

1
Excellent! Cette question doit être protégée
Ahsan Horani

0

J'utilise cette méthode pour faire la même chose mais avec le module Aw_blogmais quand j'ajoute le

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

Le formulaire de page du blog de mon article est blanc.

PS: le téléchargement d'une image sur le terrain est un succès mais pas pour plusieurs.

mymodule entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.