Jawaban:
Saya menggunakan Joomla 3.2, di bagian atas daftar saya, saya meletakkan:
$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]);
}
}
Ini mencegah agar skrip tersebut tidak disertakan, menambah atau menghapus skrip sesuai kebutuhan
JURI::root(true).
sebelum jalur skrip dan berhasil.
Anda dapat menghapusnya di templat
unset(
$this->_scripts['/media/jui/js/mootools-core.js'],
$this->_scripts['/media/jui/js/core.js']);
Ini akan menghapus kedua file JS dari Header.
Di Joomla 3.x, Anda bisa memanggil JHtml::_('jquery.framework')
template Anda untuk memuat jQuery tanpa Mootools. Beban ini jQuery tidak modus konflik secara default jadi jika Anda perlu mode normal, cukup tambahkan parameter kedua palsu : JHtml::_('jquery.framework', false)
.
Saya telah menggunakan ini:
foreach ($doc->_scripts as $script => $value)
{
if (preg_match('/media\/jui/i', $script))
unset($doc->_scripts[$script]);
}
needle
string Anda tidak variabel dan satu-satunya niat adalah untuk membuat kecocokan case-sensitive, maka akan lebih baik berlatih menggunakan stripos () ...if (stripos($script, 'media/jui') !== false)
Solusi oleh @ContextSwitch tidak berfungsi untuk saya karena beberapa skrip sedang dimuat setelah templat diproses sehingga membatalkan pengaturan file pada tahap itu tidak berpengaruh pada file-file tersebut.
Jadi saya harus mengimplementasikan solusi serupa tetapi menggunakan plugin sederhana terikat onBeforeCompileHead
acara. Seperti yang saya jelaskan di sini .