Aggiungi un campo immagine nel tuo plugin di amministrazione (ad esempio AW Blog)

Schermafbeelding 2013-07-03 del 14.28.17

Aggiungere un campo immagine a plugin come AW Blog

Modifica in /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Tab/Form.php

$fieldset->addField('nomefile', 'file', array(
'etichetta' => Mage::helper('blog')->__('Immagine'),
'obbligatorio' => falso,
'nome' => 'nomefile',
'dopo_elemento_html' => 'Formato 125 x 118 pixel',
));

Modifica in /app/code/community/AW/Blog/controllers/Manage/BlogController.php dopo:

funzione pubblica saveAction() {

se ($data = $this->getRequest()->getPost()) {

Aggiungere:

if(isset($_FILES['nomefile']['nome']) && $_FILES['nomefile']['nome'] != '') {
Tentativo {
/* Avvio caricamento */
$uploader = nuovo Varien_File_Uploader('nome file');

// Qualsiasi estensione funzionerebbe
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(false);

// Imposta la modalità di caricamento del file
// false -> ottieni il file direttamente nella cartella specificata
// true -> ottieni il file nelle cartelle simili al prodotto
// (file.jpg andrà in qualcosa come /media/f/i/file.jpg)
$uploader->setFilesDispersion(false);

// Impostiamo il media come directory di caricamento
$path = Mage::getBaseDir('media') . DS ;
$uploader->save($path, $_FILES['nomefile']['nome'] );

} catch (Eccezione $e) {

}

//in questo modo il nome viene salvato nel DB
$data['nomefile'] = $_FILES['nomefile']['nome'];
}

Aggiungi inoltre un campo 'filename' nel tuo database (tabella 'aw_blog').

E infine in /app/code/community/AW/Blog/Block/Blog/Edit/Form.php assicurati che la variabile $form sia definita come segue, in modo che funzioni con multipart/form-data:

$form = nuovo Varien_Data_Form(array(
'id' => 'modifica_modulo',
'azione' => $this->getUrl('*/*/salva', array('id' => $this->getRequest()->getParam('id'))),
'metodo' => 'post',
'enctype' => 'multipart/form-data',
)
);

Ultimo aggiornamento il 18 agosto 2013

16 commenti su “Add an image field in your admin plugin (by example AW Blog)”

  1. CIAO!

    ho appena trovato il tuo post che spiega esattamente cosa mi serve! L'unica cosa che non riesco a far funzionare è la parte in:
    /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Form.php

    Non so bene se il codice dovrebbe essere nella funzione _prepareForm o da qualche altra parte! Potresti per favore farmelo sapere!

    Saluti,
    Santi

    1. Grazie per la risposta. In effetti conteneva alcuni bug. Ho aggiornato il post. Dovrebbe funzionare correttamente. Puoi confermare se funziona?

  2. Hai idea di cosa sto sbagliando?

    Ho aggiunto tutto il codice ma le informazioni non vengono salvate nel database.
    Vedo l'immagine nella mappa dei media.

    Ho aggiunto il nome del file al database con varchar(255) utf8_general_ci

  3. CIAO,
    stessa cosa qui. Il nuovo campo viene visualizzato nel backend ma non memorizzato nel database e non viene visualizzato quando viene salvato.

    Cosa manca (io uso l'ultima versione di aw_blog).

    Grazie

  4. Non funziona per me. Ho creato un campo denominato "filename" nel database dopo aver aggiunto il codice sopra, ma niente ha funzionato per me.

  5. Grazie per questo, funziona benissimo! Ho riscontrato un piccolo problema: quando il post viene modificato, l'immagine viene eliminata dal DB. Qualche indizio? Grazie per l'aiuto

  6. Devi solo aggiungere la riga sottostante
    $model->setFeaturedImage($_FILES['immagine_in_primo_piano']['nome']);
    Prima
    $model->salva();
    nel file app/code/community/AW/Blog/controllers/Manage/BlogController.php.

  7. Esiste un modo per implementare questo all'interno di un'estensione anziché modificare il codice core di AW Blogs? In modo che AW Blog possa essere aggiornato in futuro e si possano conservare tutti i campi aggiuntivi aggiunti?

  8. Ho un problema quando carichi un'immagine e clicchi su Salva, viene salvata insieme all'immagine ma se torni indietro, modifichi il contenuto del post e poi clicchi su Salva, l'immagine viene cancellata e devi aggiungerla di nuovo :/

  9. Rispondi: Ottieni il percorso completo dell'immagine sul frontend caricato dal campo personalizzato nel database - Gomagento2

  10. Rispondi: Ottieni il percorso completo dell'immagine sul frontend caricato dal campo personalizzato nel database - MageTechWeb

  11. Per me funziona benissimo, grazie mille per la guida!

    Una rapida modifica. La versione che sto usando ha una struttura di file leggermente diversa.

    Invece di “/app/code/community/AW/Blog/controllers/Manage/BlogController.php”

    Suo

    “app/codice/comunità/AW/Blog/controller/Adminhtml/Awblog/Gestisci/BlogController.php”

    (Solo l'aggiunta della cartella adminhtml)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItaliano
Scorri verso l'alto