Joomlashow arrow Articoli arrow Disabilitare Mootools e caption.js dal frontend di Joomla 1.5

Disabilitare Mootools e caption.js dal frontend di Joomla 1.5

21-12-2009 10:07

no mootools

Mi è capitato spesso di chiedermi: "perchè mai devo caricare una libreria javascript non compressa che pesa 73 KB che rallenta sensibilmente le mie pagine se non mi serve?".

Personalmente trovo veramente RIDICOLO che mootools.js e caption.js vengano caricati di default in tutte le pagine del sito e che non ci sia ancora un'opzione che consenta nativamente di disattivarli dal backend di Joomla.

Evitiamo fraintendimenti: Mootools è un framework javascript grandioso.
L'ultima versione, attualmente la 1.2.4, pesa 65 KB compressa.
È abbastanza raro che un sito carichi la versione completa di mootools.
Solitamente gli sviluppatori selezionano le parti del framework di cui hanno bisogno ed esportano un file di dimensioni molto minore.

Joomla 1.5 invece carica la versione 1.12 completa (73 KB) in tutte le pagine del frontend, anche dove non ce n'è bisogno.

Vediamo quindi due modi semplici ed efficaci per rimuovere questi due script laddove non servono.

Rimuovere mootools.js e caption.js modificando il template

Questo codice disabilita gli script mootools.js e caption.js solo dal frontend e da tutti gli articoli di contenuto.

Gli script vengono caricati invece nelle altre pagine del sito dove potrebbero servire, come ad esempio la pagina di registrazione.

Il codice va inserito nell'head del template in uso.

 
<?php
    $menu = &JSite::getMenu();
    $view = JRequest::getVar('view');
    $homepage = ($menu->getActive() == $menu->getDefault() && $view == 'frontpage');
    $user =& JFactory::getUser();
    $head = $this->getHeadData();
    if (($homepage || ($view == 'category')) && ($user->get('guest') == 1 || $user->usertype == 'Registered')){
        foreach($head['scripts'] as $key => $value){
            if(preg_match('/mootools/', $key)) unset($head['scripts'][$key]);
            if(preg_match('/caption/', $key)) unset($head['scripts'][$key]);
        }
    }
    $this->setHeadData($head);
?>
<jdoc:include type="head" />
 

Utilizzare un plugin: "Javascript Control" o "Mootools Control"

Ricercando informazioni sull'argomento ho trovato due plugin che permettono di risolvere il problema senza dover ricorrere a modifiche del codice del template.

Questi plugin sono Javascript Control e Mootools Control.

Conclusione: una speranza per Joomla 1.6

Seguendo questi consigli riuscirete a disabilitare gli script mootools.js e caption.js.

Tuttavia, spero che nelle prossime versioni a partire da Joomla 1.6 questo probllema venga risolto nativamente e definitivamente.

Nemesis DesignFederico Capoano è un freelance web designer / web developer proveniente da Roma che attualmente vive in Spagna, nelle Isole Baleari. Ideatore e fondatore di Joomlashow.it, gestisce una piccola impresa individuale che offre servizi di web design e web development conosciuta come "Nemesis Design".

Puoi tenerti aggiornato su nuovi articoli e tips & tricks su Joomla seguendolo su Twitter.

Commenti utenti  

Visualizza 9 di 9 commenti

Mootools

Gentilmente mi spiegheresti in poche parole cosa serve? 
Magari nel mio sito non serve a nulla e lo posso disattivare definitivamente e alleggerire il tutto :) 
Grazie 
 
stefano

Scritto da: stefano riga75 (Guest) 23-12-2009 18:30

RE: Mootools

Ciao Stefano, 
 
questo dipende in parte anche dal template che utilizzi. 
Solitamente queste due librerie servono nella registrazione, nelle pagine di recupero password o username. Mi sembra che servono anche agli utenti e agli amministratori loggati nel front-end.

Scritto da: nemesis (Guest) 24-12-2009 11:37

ottimo

Perfetto grazie mille, ho messo il tuo codice e il peso della home è diminuito, così si gesticsce da solo se serve o non serve caricare i due js. 
Grazie e ancora complimenti pe ril tuo sito..... 
 
stefano

Scritto da: stefano (Guest) 24-12-2009 16:39

Re: ottimo

Prego, torna a trovarci ed inserisci i tuoi siti realizzati in Joomla nella directory! 
Ciao

Scritto da: nemesis (Membro) 27-12-2009 13:09

problema non risolto

Salve, 
ho anche io questo problema sul mio sito www.delta799decima.com 
In pratica mi da errore su IE (vrs 8) sul file mootools.js 
Se inserisco il codice nel file php del template l'errore non è più su quel file ma sul file hoover.js 
Allora ho rimesso apposto il file php e installato i due file sopra citati, ma il problema ritorna sul mootools.js. Non so proprio come risolvere il problema. La cosa strana è che quando mi loggo sul sito l'errore scompare!

Scritto da: paolo (Guest) 22-01-2010 10:15

RE: problema non risolto

Scusa, ci ho messo un pò per trovare il tempo per risponderti. 
 
Prova ad aggiornare all'ultima versione di mootools: vai su mootools.net e scarica l'ultima versione. Quindi fai un backup di quella che utilizzi attualmente sul tuo sito joomla e dopodichè sostituisci il file. 
Il problema dovrebbe risolversi. 
 
Cos'è hoover.js? E' un file del tuo template? 
 
Davvero strano.. hai provato a fare una ricerca su google per vedere se qualcun altro ha il tuo problema? 
Io ho fatto una ricerca veloce e ho trovato un post sul forum di joomla.org in cui si parla del tuo problema e mi sembra che ci sia una soluzione. 
Ecco l'indirizzo: http://forum.joomla.org/ viewtopic.php?p=1834190 
Spero tu capisca l'inglese, in caso contrario vieni a trovarci sul forum, apri un post e potrò postare il codice che ti serve per risolvere il problema.

Scritto da: nemesis (Membro) 28-01-2010 10:27

molto utile

Preferisco usare il codice che installarmi dei plugin mi siete stati d'aiuto grazie

Scritto da: webuffalo (Guest) 17-02-2010 10:45

Non mi va :(

Ho inserito cosi come ha descrito lei ma nient emi da ancora piu erori :( 
mI da molti piu erori sempre nei file che finiscono .js java 
rokbox.js 
slideshow.js ecc ecc ecc 
 
Io al inizio avevo solo il problema che in explorer non caricava tutta la pagina 
 
Cordiali saluti

Scritto da: Florin (Guest) 31-03-2010 04:50

RE: Non mi va

Probabilmente allroa non puoi disabilitare mootools perchè gli altri script lo richiedono.

Scritto da: nemesis (Membro) 31-03-2010 11:19

Aggiungi il tuo commento

Nome
E-mail
Titolo  
Commento
 

Caratteri rimasti: 1000

   
   
   
Successivo ›

Login

Hai dimenticato la password?

Registrati