Magento: come escludere dalla cache il blocco welcome message dal tema Ultimo

Il tema Ultimo è il tema più utilizzato per Magento 1.x, in questo articolo risolveremo il problema che mi ha sottoposto un utente del gruppo, ovvero si trova ad utilizzare il tema Ultimo in accoppiata con il modulo per la cache Lesti. Lesti permette di escludere dai blocchi da mettere in cache alcuni blocchi, scrivendo il nome del nodo XML del blocco.

Il problema con Ultimo deriva dal fatto che non è possibile fare questa cosa, perché Ultimo soffre di un piccolo bug di sviluppo ed in questo articolo andremo a risolverlo. Si tratta di poche righe di codice e saremo molto veloci.

Il file che contiene il codice del welcome message

Andiamo subito al problema, vediamo infatti che nel file:

app/design/frontend/ultimo/default/template/page/html/header.phtml

alla riga 82, troviamo un modo di richiamare che non è proprio Magento standard. Infatti lo sviluppatore che ha creato questo file, richiama un metodo dal Core di Magento:

 

Questo metodo lo troviamo infatti nel file

app/code/core/Mage/Page/Block/Html/Header.php
alla riga 89, come public function.

Modificare il phtml

Come prima cosa, cambiamo il modo di richiamare il blocco welcome message. Inseriamo il codice standard Magento al posto del codice che ti ho appena fatto vedere, scrivendo questo:

 

Modificare il file XML

Essendo la modalità standard, che prevede quindi di richiamare un blocco con getChildHtml(‘nome_blocco’), allora dovremo istanziare la chiamata anche nel nostro file XML.

Ultimo possiede il file local, che trovi qui:

app/design/frontend/ultimo/default/layout/local.xml alla riga 129, troviamo il nodo che identifica la reference header.

Prima di chiudere la reference header, inserisco il mio pezzo di codice XML che “parla” con il codice inserito prima nel file phtml, così:

 

Ed il gioco è fatto!

Conclusioni

Adesso abbiamo standardizzato il modo di richiamare anche dentro Ultimo il welcome message, viene richiamato attraverso phtml e XML e quindi ha anche un nome. A questo punto, basterà, nella configurazione di Lesti, inserire il nome XML del blocco per escluderlo dalla cache.

Domande o dubbi?

Se hai domande e/o dubbi, puoi ricevere assistenza nel gruppo pubblico Facebook.