Mootools это легковесный javascript фреймворк используемый Joomla 2.5. Ваш сайт на Joomla по умолчанию подключает два js файла mootools-core.js (92.9 KB) и mootools-more.js (233 KB). Mootools в основном используется в админке Joomla, и иногда в шаблонах.

При отключении этой библиотеки на стороне клиента, Вы получите несколько плюсов.  Таких как:

  • Ускорение загрузки страницы сайта, страница будет легче на 325.9 KB ненужного javascript'a
  • Исчезнут конфликты между mootools и другими javascript библиотеками, например с jQuery, связанные с тем, что mootools использует $. 

359 КБ это не так уж и мало. Joomla сайты всегда страдают излишней медлительностью. Можно в очередной раз разместить сервер в стойку, оптимизировать базу, включить кешеры и вычистить весь css, но благодаря модульности joomla, она все равно будет грузится медленно. 

После нескольких месяцев работы Joomla 2.5 с разными компонентами, вы увидите, что отключение mootools вы можете много чего сломать. Для примера, при тестировании VirtueMart, вы потеряете весь функционал фильтров. После включения mootools, проблем не будет. Поэтому, на работающих сайтах не рекомендуется отключать mootools. ОТКЛЮЧАЙТЕ MOOTOOLS НА СВОЙ СТРАХ И РИСК.

Шаги для отключения MooTools в Joomla 2.5:

  1. Откройте в любом текстовом редакторе следующий файл:
    libraries/joomla/document/html/renderer/head.php
  2. найдите этот код на строке 151:
    // Generate script file links
    foreach ($document->_scripts as $strSrc => $strAttr)
    {
        $buffer .= $tab . '<script src="' . $strSrc . '"';
        if (!is_null($strAttr['mime']))
        {
            $buffer .= ' type="' . $strAttr['mime'] . '"';
        }
        if ($strAttr['defer'])
        {
            $buffer .= ' defer="defer"';
        }
        if ($strAttr['async'])
        {
            $buffer .= ' async="async"';
        }
        $buffer .= '</script>' . $lnEnd;
    }
    

    ...и обновите так, чтобы получилось, как следует ниже (подсвечено то, что необходимо добавить)

    // Generate script file links
    foreach ($document->_scripts as $strSrc => $strAttr)
    {
        // Код отключения mootools на сайте(в админке ничего не изменится)
        $ex_src = explode("/",$strSrc);
        $js_file_name = $ex_src[count($ex_src)-1];
        $js_to_ignore = array("mootools-core.js","mootools-more.js");
        if( in_array($js_file_name,$js_to_ignore) AND substr_count($document->baseurl,"/administrator") < 1 AND $_GET['view'] != 'form')
            continue;
    
        $buffer .= $tab . '<script src="' . $strSrc . '"';
        if (!is_null($strAttr['mime']))
        {
            $buffer .= ' type="' . $strAttr['mime'] . '"';
        }
        if ($strAttr['defer'])
        {
            $buffer .= ' defer="defer"';
        }
        if ($strAttr['async'])
        {
            $buffer .= ' async="async"';
        }
        $buffer .= '</script>' . $lnEnd;
    }
    
  3. После сохранения, отчистите кеш и проверьте сайт и работу админки. Если вы сделали все верно, то в админке mootools загрузится, а на сайте нет.  

Замечание:

Если ваша Joomla 2.5 админка называется не "administrator", обновите следующие строки на корректное название:
substr_count($document->baseurl,"/administrator")

Если вы хотите, чтобы не подключались еще и другие скрипты, такие как caption.js, добавьте их в js_to_ignore array:
$js_to_ignore = array("mootools-core.js","mootools-more.js","caption.js");

Если у вас возникли проблемы c подобными модификациями, не стесняйтесь оставлять комментарии внизу страницы. 

При редактировании материалов на стороне сайта, mootools необходим. Если вы его отключите, то кнопка  "Save" не сработает. Поэтому был добавлен следующий код:

AND $_GET['view'] != 'form'
Если вы редактируете что-то прямо на сайте то Mootools будет загружен
Рассказать друзьям

Добавить комментарий


Защитный код
Обновить

Комментарии   

0
Adrian
# Adrian 24.04.2015 21:28
Спасибо! Помогло. Все работает.
0
Сергей Храбрый
# Сергей Храбрый 04.11.2016 16:36
Сразу перестает работать rockbox .. В общем тема не актуальная