Domanda

Sto facendo un modulo che sarà più o meno lo stesso con la catalog-> product manager fare. Nel mio modulo ho bisogno di caricare un image.Everything va bene così problema far.The è che non riesco a trovare un modo quando ho caricare un'immagine e andare a modificare tale prodotto, l'immagine è 22x22 px.

Il mio campo è in forma è così:

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

       ));

Quindi la mia domanda è dall'immagine below.How posso fare che l'immagine più grande? Quando i Modificare il CSS che usi di Magento si cambiano tutte le immagini di anteprima per tutto il sito.

immagine di anteprima

Grazie in anticipo per il vostro tempo.

È stato utile?

Soluzione

È possibile aggiungere contenuti HTML dopo il vostro elemento, l'uso seguente:

$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'/> "
);

Ecco $imageUrl è link immagine inserita, ho capito dal mio modello, ma il vostro potrebbe essere differiscono, si può ottenere usando propria logica. E anche aggiungere alcune regole css per some_class.

Altri suggerimenti

L'immagine che lei ha detto si aggiunge tramite la classe Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Image che a sua volta utilizza il Varien_Data_Form_Element_Image

Se si guarda alla funzione getElementHtml su Varien_Data_Form_Element_Image si vedrà l'altezza codificato duro e larghezza.

/**
 * 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;
}

vorrei suggerire che si potrebbe riscrivere la classe Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Image e creare una funzione getElementHtml che imposterà la larghezza e l'altezza desiderata.

In alternativa è possibile utilizzare la adminhtml_catalog_product_edit_element_types dell'evento e creare un gestore di tipo personalizzato. Si sarebbe quindi necessario aggiornare il tipo di campo quando si aggiungono da image a qualcosa di simile new_image.

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

ho accettato la risposta di @mageUz e funziona, ma ho anche scoperto che la soluzione che è più veloce e più facile che penso. Se si aggiunge un file css all'interno della pelle / adminhtml / default / default / yourfile.css con che rende il trucco:

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

imagebook_image è fatto con il tuo nome colonna e type.I non ho trovato nulla per essere infrante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top