Dopo aver aggiornato a Magento 1.9.2, o dopo aver installato la patch di sicurezza SUPEE-6788 su una versione precedente, molte persone hanno segnalato che i loro blocchi statici richiamati dagli shortcodes non erano più funzionanti (erano scomparsi). Ad esempio in un nostra homepage richiamavamo un Blocco Statico CMS con il seguente codice:

{{block type="cms/block" block_id="slide_home"}}

Dopo l’aggiornamento questo blocco non veniva più visualizzato. In effetti questo shortcode causava un error PHP che veniva riportato nei file di log:

Notice: Undefined variable: block  in /app/code/core/Mage/Core/Model/Email/Template/Filter.php on line 187

Eseguendo ulteriori controlli è risultato evidente che l’errore non era limitato solo agli shortcode dei Blocchi Statici CMS, ma in effetti era relativo a tutti i blocchi statici aggiuntivi, compresi quelli di estensioni di terze parti.

In realtà questo non è un bug, ma proprio una nuova funzione di sicurezza aggiunta dalla patch SUPE-6788. Leggendo i dettagli tecnici l’autore indica chiaramente che i blocchi devono essere aggiunti ad una whitelist per essere mostrati:

[nz_highlight color=”ababab”]Magento now includes a white list of allowed blocks or directives. If a module or extension uses variables like {{config path=”web/unsecure/base_url”}} and {{block type=rss/order_new}} in CMS pages or emails, and the directives are not on this list, you will need to add them with your database installation script. Extensions or custom code that handles content (like blog extensions) might be affected. – See more at: http://magento.com/security/patches/supee-6788-technical-details#sthash.oywSvFeq.dpuf[/nz_highlight]

Come risolvere questo problema?

Semplicemente aggiungendo il tipo di blocco che vuoi far visualizzare nella white list di Magento.

Fortunatamento questo è molto semplice e può essere fatto direttamente dall’interfaccia del backend amministrativo di Magento. Vai in

Sistema => Autorizzazioni => Blocks

E qui aggiungi il tipo di blocco che vuoi mostrare.

Per trovare il corretto nome del blocco da aggiungere vai in CMS => Pagine e guarda all’interno del codice della pagina che presenta il problema.

Per esempio in uno dei nostri siti web avevamo 2 blocchi con widgets chiamati con:

{{block type="shopreview/widget" name="shopreviewwidget"}}
{{block type="aslider/container" template="aslider/container.phtml"}}

Quindi siamo andati in Sistema => Autorizzazioni => Blocks e abbiamo aggiunto i due Nuovi Blocchi inserendo in uno shopreview/widget e nell’altro aslider/container.

Salvare, pulire la cache e verificare, avrete nuovamente le pagine con i contenuti presenti prima dell’aggiornamento di Magento.

Leave a Reply

Your email address will not be published. Required fields are marked

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
Success message!
Warning message!
Error message!