Question

Je fais un module qui sera à peu près la même chose avec le catalog-> Gestionnaire de produit faire. Dans mon module i besoin de télécharger un image.Everything est très bien si problème far.The est que je ne peux pas trouver un moyen quand j'ai télécharger une image et aller modifier ce produit, l'image est 22x22 px.

Mon champ est sous la forme est comme ça:

$fieldset->addField('imagebook', 'image', array(
          'label'     => Mage::helper('books')->__('Image'),
          'required'  => false,
          'name'      => 'imagebook',

       ));

Alors ma question est de l'image below.How puis-je faire cette image plus? Lorsque je modifier le css que les utilisations magento changer toutes les images d'aperçu pour tout le site.

Aperçu de l'image

Merci d'avance pour votre temps.

Était-ce utile?

La solution

Vous pouvez ajouter du contenu HTML après votre élément, utilisez suivant:

$field = $fieldset->addField('imagebook', 'image', array(
    'label' => Mage::helper('books')->__('Image'),
    'required' => false,
    'name' => 'imagebook',
));

$imageUrl = Mage::registry('model')->getImageUrl();

$field->setAfterElementHtml(
    "<img src='$imageUrl' class='some_class'/> "
);

Ici $imageUrl est lien vers l'image téléchargée, je l'obtiens de mon modèle, mais le vôtre peut-être différentes, vous pouvez l'obtenir en utilisant la logique propre. Et aussi ajouter quelques règles CSS some_class.

Autres conseils

L'image que vous avez dit est ajouté par la classe Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Image qui à son tour utilise le Varien_Data_Form_Element_Image

Si vous regardez dans la fonction getElementHtml sur Varien_Data_Form_Element_Image vous verrez la hauteur et la largeur codée en dur.

/**
 * Return element html code
 *
 * @return string
 */
public function getElementHtml()
{
    $html = '';

    if ((string)$this->getValue()) {
        $url = $this->_getUrl();

        if( !preg_match("/^http\:\/\/|https\:\/\//", $url) ) {
            $url = Mage::getBaseUrl('media') . $url;
        }

        $html = '<a href="' . $url . '"'
            . ' onclick="imagePreview(\'' . $this->getHtmlId() . '_image\'); return false;">'
            . '<img src="' . $url . '" id="' . $this->getHtmlId() . '_image" title="' . $this->getValue() . '"'
            . ' alt="' . $this->getValue() . '" height="22" width="22" class="small-image-preview v-middle" />'
            . '</a> ';
    }
    $this->setClass('input-file');
    $html .= parent::getElementHtml();
    $html .= $this->_getDeleteCheckbox();

    return $html;
}

Je suggère que vous pouvez réécrire la classe Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Image et créer une fonction getElementHtml qui définira la largeur et la hauteur que vous voulez.

vous pouvez également utiliser l'événement adminhtml_catalog_product_edit_element_types et créer un gestionnaire de type personnalisé. Vous devrez alors mettre à jour le type de champ lors de l'ajout de image à quelque chose comme new_image.

$response = $observer->getEvent()->getResponse();
$types = $response->getTypes();
$types['new_image'] = Mage::getConfig()->getBlockClassName('new_image/element_image');
$response->setTypes($types);

J'ai accepté la réponse de @mageUz et il fonctionne, mais je trouve aussi cette solution qui est plus rapide et plus facile, je pense. Si vous ajoutez un fichier css dans la peau / adminhtml / default / default / yourfile.css avec qui il fait l'affaire:

#imagebook_image {
display: block;
max-width: 200px;
max-height: 200px;
width: auto;
height: auto;
padding-bottom: 10px;
}

imagebook_image est faite par votre nom de colonne et type.I n'a rien trouvé à être cassé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top