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
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
Grazie per la risposta. In effetti conteneva alcuni bug. Ho aggiornato il post. Dovrebbe funzionare correttamente. Puoi confermare se funziona?
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
Ciao, ho lo stesso problema.
L'immagine non viene salvata nella tabella.
Hai risolto questo problema? 🙁
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
Ciao, ho lo stesso problema. Ho aggiunto il campo immagine tramite system.xml, non a livello di programmazione.
Come si aggiungono i tag alt all'immagine per scopi SEO?
Non funziona per me. Ho creato un campo denominato "filename" nel database dopo aver aggiunto il codice sopra, ma niente ha funzionato per me.
Se avete problemi a salvare il file nel database, vi preghiamo di aggiornare gli indici.
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
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.
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?
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 :/
Rispondi: Ottieni il percorso completo dell'immagine sul frontend caricato dal campo personalizzato nel database - Gomagento2
Rispondi: Ottieni il percorso completo dell'immagine sul frontend caricato dal campo personalizzato nel database - MageTechWeb
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)