Nonaktifkan pemuatan skrip di kepala

9

Bagaimana cara menonaktifkan pemuatan

  • mootools-core.js
  • core.js

Masuk <head>tanpa menggunakan komponen / plugin pihak ketiga?

web-tiki
sumber
Versi Joomla apa yang Anda gunakan?
TryHarder
@moomoochoo Saya menggunakan joomla 3.2
web-tiki

Jawaban:

18

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

ContextSwitch
sumber
3
Ini gagal pada proyek terakhir saya (joomla 3.3.6). Saya menambahkan JURI::root(true).sebelum jalur skrip dan berhasil.
web-tiki
5

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.

Harald Leithner
sumber
4

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

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

flutterderp
sumber
2

Saya telah menggunakan ini:

foreach ($doc->_scripts as $script => $value)
{
    if (preg_match('/media\/jui/i', $script))
      unset($doc->_scripts[$script]);
}
Aerendir
sumber
2
Karena needlestring 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)
mickmackusa
0

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 onBeforeCompileHeadacara. Seperti yang saya jelaskan di sini .

Mohd Abdul Mujib
sumber