Come posso fare l'anteprima immagine più grande?
-
16-10-2019 - |
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.
Grazie in anticipo per il vostro tempo.
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.