A volte anche in Prestashop capita di dover inserire codice javascript nella head del codice html.
Purtroppo i moduli esistenti per inserire codice html in genere consentono di inserirlo solo nel corpo della pagina (ovvero nel body) e non nell’head. Per inserirlo lì dovete modificare a mano il file header.tpl, ma se avete già provato avrete notato che a volte non funziona.
Il problema è smarty, ovvero il sistema di cache che utilizza Prestashop che interpreta i file .tpl, ed in particolare l’uso delle parentesi graffe. Infatti le parentesi graffe per smarty sono una precisa istruzione, e non riesce a riconoscere quando si riferiscono invece a codice javascript (in questo caso non le deve interpretare, ma solo scrivere nel codice così come sono).
Tuttavia c’è una soluzione molto semplice: dire a smarty che il codice javascript non deve essere interpretato (ma solo scritto nell’html). E’ sufficiente usare l’istruzione {literal} {/literal} di smarty, ed il gioco è fatto.
Ovvero: prima del codice javascript nel tpl metteteci {literal} , e dopo {/literal}, ed il gioco è fatto.
Ad esempio:
{literal}
<script>
function prova() {
}
</script>
{/literal}