Skip to main content

Joomla, VirtueMart e MooTools

Sia Joomla 1.5 che VirtueMart 1.1 usano una libreria JavaScript chiamata MooTools.

Tuttavia, nel corso dei vari rilasci la versione di tale libreria è cambiata: nel resto dell’articolo facciamo un bel riepilogo storico e vediamo come disattivare il caricamento di VirtueMart in caso di problemi.

Cos’è MooTools?

MooTools è una libreria JavaScript che offre una vasta serie di funzioni preconfezionate.

Da qualche tempo il linguaggio JavaScript sta scoprendo una seconda giovinezza e sempre più spesso viene utilizzato per semplificare e/o velocizzare l’esperienza utente.

Questo è possibile anche grazie alla disponibilità di librerie che ci permettono di usare metodi semplificati per ottenere quanto desiderato; oltre a MooTools ad esempio è molto usata anche JQuery.

Tuttavia MooTools ci interessa in particolare perchè è la libreria predefinita in Joomla, e viene installata di default insieme al pacchetto di base.

MooTools e Joomla

La versione installata per default in Joomla 1.5 è MooTools 1.1.

Tuttavia, a partire da Joomla 1.5.19, è disponibile un plugin opzionale per caricare invece la versione MooTools 1.2.

Tale nuova versione offre numerosi miglioramenti e nelle ultime estensioni è diventata la norma affidarsi a questa versione.

MooTools e VirtueMart

Per motivi storici VirtueMart carica una propria istanza di MooTools 1.1.

Fino a Joomla 1.5.19 questo caricamento risultava solo ridondante, ma non dannoso.

Da quella versione in poi, tuttavia, la possibilità di abilitare il plugin di aggiornamento rendeva il problema più serio.

In tal caso, infatti alcune chiamate JavaScript di VirtueMart smettevano di funzionare, perchè non compatibili con la nuova versione.

Fortunatamente questo problema è stato risolto da VirtueMart 1.1.8 in poi.

Evitare il caricamento di MooTools da parte di VirtueMart

Non bastasse tutto quanto riportato finora, anche alcuni templates caricano la propria versione di MooTools.

Quindi potreste trovarvi nella condizione di voler evitare che VirtueMart carichi la propria versione.

Dato che non esiste una opzione simile in configurazione, dovrete modificare manualmente il file

/administrator/components/com_virtuemart/classes/htmlTools.class.php

e modificare la funzione loadMooTools(), rimuovendo tutto quello che contiene. Otterrete quindi la funzione vuota :

function loadMooTools( $version='' ) {  }

Si tratta di una soluzione “di forza” ma è la più semplice dato che dovete effettuare la modifica in un unico punto.

Purtroppo non è possibile usare la user_class per effettuare questa modifica, quindi dovrete rassegnarvi a modificare il file originale, ricordandovi di tenerne traccia in caso di aggiornamenti o reinstallazioni.

Il futuro

Joomla 1.6 / 1.7 effettuano un altro passo avanti e includono MooTools 1.3.

VirtueMart 2 cambia direzione e usa JQuery.

Per cui sicuramente non avrete più problemi di versione, anche se potreste avere problemi di compatibilità tra le due diverse librerie.

Ma questa è un’altra storia.

Commenti (2)

I commenti sono chiusi.