Antworten:
Ich benutze Joomla 3.2, ganz oben in meinem Tempate habe ich gesetzt:
$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]);
}
}
Dies verhindert, dass diese Skripte nach Bedarf hinzugefügt, Skripte hinzugefügt oder entfernt werden
JURI::root(true).
vor den Skriptpfaden hinzugefügt und es hat funktioniert.
Sie können es in der Vorlage deaktivieren
unset(
$this->_scripts['/media/jui/js/mootools-core.js'],
$this->_scripts['/media/jui/js/core.js']);
Dadurch werden die beiden JS-Dateien aus dem Header entfernt.
In Joomla 3.x können Sie JHtml::_('jquery.framework')
Ihre Vorlage aufrufen , um jQuery ohne Mootools zu laden. Dadurch wird jQuery standardmäßig in keinem Konfliktmodus geladen. Wenn Sie also den normalen Modus benötigen, fügen Sie einfach einen zweiten Parameter von false hinzu : JHtml::_('jquery.framework', false)
.
Ich habe das benutzt:
foreach ($doc->_scripts as $script => $value)
{
if (preg_match('/media\/jui/i', $script))
unset($doc->_scripts[$script]);
}
needle
Zeichenfolge nicht variabel ist und die einzige Absicht darin besteht, eine Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung vorzunehmen, ist es besser, stripos () zu verwenden ...if (stripos($script, 'media/jui') !== false)
Die Lösung von @ContextSwitch funktionierte bei mir nicht, da einige Skripte nach der Verarbeitung der Vorlage geladen wurden, sodass das Deaktivieren der Dateien zu diesem Zeitpunkt keine Auswirkungen auf diese Dateien hatte.
Also musste ich die ähnliche Lösung implementieren, aber ein einfaches Plugin verwenden, das an das onBeforeCompileHead
Ereignis gebunden war . Wie von mir hier beschrieben .