web-dev-qa-db-fra.com

Désactiver le chargement de script en tête

Comment désactiver le chargement de

  • mootools-core.js
  • core.js

Dans <head> sans utiliser de composant/plugin tiers?

8
web-tiki

En utilisant Joomla 3.2, en haut de mon tempate je mets:

$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]);
    }
}

Cela empêche ces scripts d'être inclus, ajouter ou supprimer des scripts selon les besoins

18
ContextSwitch

Vous pouvez le désactiver dans le modèle

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

Cela supprimera les deux fichiers JS de l'en-tête.

5
Harald Leithner

Dans Joomla 3.x, vous pouvez appeler JHtml::_('jquery.framework') dans votre modèle pour charger jQuery sans Mootools. Cela charge jQuery en mode sans conflit par défaut, donc si vous avez besoin du mode normal, ajoutez simplement un deuxième paramètre de false : JHtml::_('jquery.framework', false).

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

4
flutterderp

J'ai utilisé ceci:

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

La solution de @ContextSwitch ne fonctionnait pas pour moi car certains scripts étaient chargés après le traitement du modèle. La suppression des fichiers à ce stade n'a donc aucun effet sur ces fichiers.

J'ai donc dû implémenter une solution similaire mais en utilisant un simple plugin lié à l'événement onBeforeCompileHead. Comme décrit par moi ici .

0
Mohd Abdul Mujib