Blog

Google Chrome abbandona Flash – alternativa all’uploader di Magento 1

Lettura 3 minuti

La decisione di Google di non supportare più ufficialmente Flash in Chrome a partire dalla versione 55, che verrà rilasciata a Dicembre, rappresenta un classico esempio di teoria del caos. Come infatti “il batter d’ali di una farfalla in Brasile può provocare un tornado in Texas”, così la decisione di rimuovere Flash – una tecnologia ormai considerata unanimemente obsoleta – andrà a creare qualche fastidio ai merchant che utilizzano il browser di Google per gestire il proprio catalogo Magento 1, nella fattispecie per caricare le immagini dei propri prodotti. Questo perché a suo tempo Magento decise di adottare una soluzione basata su Flash per implementare l’uploader che tutti conosciamo:

Dobbiamo ricordare che le prime versioni di Magento risalgono al 2009, in quel periodo i browser erano lontani dal trovare uniformità negli standard per quanto riguarda qualsivoglia tipo di API e Flash era l’unico strumento in grado di garantire compatibilità cross-browser.

Oggi le cose sono cambiate, le File API e XMLHttpRequest sono utilizzabili in modo uniforme su tutte le versioni recenti dei browser più diffusi, tant’è che anche Magento 2 ha utilizzato sin da subito un uploader Flash-free.

Per cui non c’è da disperarsi, la soluzione a questo problema è abbastanza semplice e consiste nell’installare il seguente modulo:

https://github.com/openstream/No-Flash-Image-Uploader

Si tratta di un modulo che sostituisce in modo trasparente l’uploader nativo, sia per la galleria di immagini in scheda prodotto sia nel file manager del cms, che una volta installato non richiede alcuna configurazione.

E’ poco invasivo, in quanto usa una sola rewrite (per la classe Mage_Adminhtml_Block_Media_Uploader), per cui il rischio incompatibilità con altri moduli di terze parti è ridotto al minimo.

Seppure non sia aggiornato da un po’, è testato e funzionante sulle ultime versioni di Magento 1. Noi abbiamo avuto modo di verificarlo direttamente sulle versioni Community 1.9.1.0 e 1.9.2.4 ed Enterprise 1.14.1.0.

Installarlo è molto semplice, se si utilizza Composer (e si dovrebbe, Nadia ci spiega come fare anche su Magento 1), è sufficiente aggiungere questa dipendenza nel proprio composer.json:

"require": {
    ...
    "openstream/dull-uploader": "v1.1.2"
    ...
}

Se già si utilizza il repository packages.firegento.com non è necessario altro, alternativamente si può aggiungere il suo repo direttamente:

"repositories": {
    ...
    {
        "type": "vcs",
        "url": "https://github.com/openstream/No-Flash-Image-Uploader"
    }
    ...
}

Se invece non si utilizza Composer, è possibile semplicemente scaricare lo zip, estrarlo e copiare le cartelle app e js nella root del vostro progetto Magento.

Conclusione

Questa è una soluzione semplice ed efficace che abbiamo individuato per un problema noioso che si presenterà da qui a qualche mese (se, come me, utilizzate il Dev channel di Chrome, Flash è già stato rimosso).

Vale anche la pena ricordare che sostituire l’uploader in Flash ha anche il vantaggio di rimuovere i problemi che solitamente si presentano con l’upload delle immagini quando il sito è protetto da autenticazione http basic (una delle cause tipiche del messaggio “Upload HTTP Error”).

Se conoscete altre soluzioni al problema sentitevi liberi di segnalarle nei commenti.

Gennaro Vietri