Deshabilitar la carga de guiones en la cabeza

9

¿Cómo desactivo la carga de

  • mootools-core.js
  • core.js

¿ <head>Sin usar un componente / complemento de terceros?

web-tiki
fuente
¿Qué versión de Joomla estás usando?
TryHarder
@moomoochoo Estoy usando joomla 3.2
web-tiki

Respuestas:

18

Estoy usando Joomla 3.2, en la parte superior de mi plantilla pongo:

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

Esto evita que se incluyan esos scripts, agregue o elimine scripts según sea necesario

Cambio de contexto
fuente
3
Esto falló en mi último proyecto (joomla 3.3.6). Agregué JURI::root(true).antes de las rutas de script y funcionó.
web-tiki
5

Puedes desarmarlo en la plantilla

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

Esto eliminará los dos archivos JS del encabezado.

Harald Leithner
fuente
4

En Joomla 3.x, puede llamar JHtml::_('jquery.framework')a su plantilla para cargar jQuery sin Mootools. Esto carga jQuery en ningún modo el conflicto por defecto así que si necesitas modo normal, sólo tiene que añadir un segundo parámetro de falsa : JHtml::_('jquery.framework', false).

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

flutterderp
fuente
2

He usado esto:

foreach ($doc->_scripts as $script => $value)
{
    if (preg_match('/media\/jui/i', $script))
      unset($doc->_scripts[$script]);
}
Aerendir
fuente
2
Dado que su needlecadena no es variable y la única intención es hacer una coincidencia entre mayúsculas y minúsculas, entonces sería una mejor práctica usar stripos () ...if (stripos($script, 'media/jui') !== false)
mickmackusa
0

La solución de @ContextSwitch no funcionó para mí debido a que algunos scripts se estaban cargando después de que se procesó la plantilla, por lo que la eliminación de los archivos en esa etapa no tuvo ningún efecto en esos archivos.

Así que tuve que implementar una solución similar pero usando un complemento simple vinculado al onBeforeCompileHeadevento. Según lo descrito por mí aquí .

Mohd Abdul Mujib
fuente