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?


¿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


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.


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


2

He usado esto:

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

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í .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.