Отключить загрузку скрипта в голове

9

Как отключить загрузку

  • mootools-core.js
  • core.js

В <head>без использования стороннего компонента / плагина?

веб-Тики
источник
Какую версию Joomla вы используете?
TryHarder
@moomoochoo Я использую joomla 3.2
web-tiki

Ответы:

18

Я использую Joomla 3.2, в верхней части моего соблазна я поставил:

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

Это предотвращает включение этих сценариев, добавление или удаление сценариев по мере необходимости

ContextSwitch
источник
3
Это не удалось в моем последнем проекте (Joomla 3.3.6). Я добавил JURI::root(true).перед путями сценария, и это работало.
web-tiki
5

Вы можете сбросить его в шаблоне

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

Это удалит оба файла JS из заголовка.

Харальд Лейтнер
источник
4

В Joomla 3.x вы можете вызвать JHtml::_('jquery.framework')свой шаблон для загрузки jQuery без Mootools. Эта нагрузка Jquery в режиме без конфликтов по умолчанию , так что если вам нужен нормальный режим, просто добавьте второй параметр ЛОЖЬ : JHtml::_('jquery.framework', false).

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

flutterderp
источник
2

Я использовал это:

foreach ($doc->_scripts as $script => $value)
{
    if (preg_match('/media\/jui/i', $script))
      unset($doc->_scripts[$script]);
}
Aerendir
источник
2
Поскольку ваша needleстрока не является переменной, и единственное намерение состоит в том, чтобы сопоставить регистр без учета регистра, было бы лучше использовать stripos () ...if (stripos($script, 'media/jui') !== false)
mickmackusa
0

Решение @ContextSwitch не работало для меня из-за того, что некоторые скрипты загружались после обработки шаблона, поэтому удаление файлов на этом этапе не влияло на эти файлы.

Поэтому мне пришлось реализовать подобное решение, но с помощью простого плагина, привязанного к onBeforeCompileHeadсобытию. Как описано мной здесь .

Мохд Абдул Муджиб
источник