Disabilita il caricamento degli script in testa


9

Come disabilito il caricamento di

  • mootools-core.js
  • core.js

In <head>senza l'utilizzo di una terza parte componente / plugin?


Quale versione di Joomla stai usando?
TryHarder,

@moomoochoo Sto usando joomla 3.2
web-tiki il

Risposte:


18

Sto usando Joomla 3.2, in cima al mio clima ho messo:

$doc = JFactory::getDocument();

$dontInclude = array(
'/media/jui/js/jquery.js',
'/media/jui/js/jquery.min.js',
'/media/jui/js/jquery-noconflict.js',
'/media/jui/js/jquery-migrate.js',
'/media/jui/js/jquery-migrate.min.js',
'/media/jui/js/bootstrap.js',
'/media/system/js/core-uncompressed.js',
'/media/system/js/tabs-state.js',
'/media/system/js/core.js',
'/media/system/js/mootools-core.js',
'/media/system/js/mootools-core-uncompressed.js',
);

foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
}

Questo impedisce di includere quegli script, aggiungere o rimuovere script secondo necessità


3
Questo è fallito nel mio ultimo progetto (joomla 3.3.6). Ho aggiunto JURI::root(true).prima i percorsi degli script e ha funzionato.
web-tiki,

5

Puoi disinserirlo nel modello

unset(
  $this->_scripts['/media/jui/js/mootools-core.js'],
  $this->_scripts['/media/jui/js/core.js']);

Ciò rimuoverà entrambi i file JS dall'intestazione.


4

In Joomla 3.x, puoi chiamare il JHtml::_('jquery.framework')tuo modello per caricare jQuery senza Mootools. Questo carichi jQuery in nessun modo il conflitto di default quindi se avete bisogno modalità normale, è sufficiente aggiungere un secondo parametro di falso : JHtml::_('jquery.framework', false).

http://docs.joomla.org/J3.2:Javascript_Frameworks


2

Ho usato questo:

foreach ($doc->_scripts as $script => $value)
{
    if (preg_match('/media\/jui/i', $script))
      unset($doc->_scripts[$script]);
}

2
Poiché la tua needlestringa non è variabile e l'unica intenzione è quella di fare una corrispondenza senza distinzione tra maiuscole e minuscole, allora sarebbe meglio usare stripos () ...if (stripos($script, 'media/jui') !== false)
mickmackusa

0

La soluzione di @ContextSwitch non funzionava per me a causa del caricamento di alcuni script dopo l'elaborazione del modello, quindi il disinserimento dei file in quella fase non ha avuto alcun effetto su tali file.

Quindi ho dovuto implementare la soluzione simile ma usando un semplice plugin associato onBeforeCompileHeadall'evento. Come descritto da me qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.