zdrowe podejście do technologii i marketingu w internecie
Wordpress, Joomla, Marketing, SEO - Zdrowy-Web.plJoomla! webJak usunąć MooTools z Joomla! (optymalizacja kodu)

Jak usunąć MooTools z Joomla! (optymalizacja kodu)

Joomla! jest bardzo funkcjonalnym systemem. Posiada wiele darmowych oraz płatnych pluginów, modułów, komponentów. Na jej bazie można zbudować niemalże wszystko.

Jednak przy prostych stronach www większość opcji jest zwyczajnie zbędna. Warto wtedy możliwie odchudzić naszą stronę by szybciej się wczytywała i nie ‚muliła’ komputera użytkownika.

Jedną z przyczyn ‚mulenia’ są skrypty JavaScript. Domyślnie Joomla! współpracuje z frameworkiem MooTools, ale zdarza się, że dodajemy nowy plugin/moduł, który bazuje na np jQuery i czasem zdarza się, że skrypty ze sobą nie współpracują i ‚zamulają’ stronę.

MooTools dla Front Endu nie jest niezbędny w przeciwieństwie do Panelu Administracyjnego. Dlatego należy tak usunąć skrypt by był wczytywany w Adminie.

Co dokładnie należy zrobić?

Odszukujemy plik i edytujemy:

libraries/joomla/document/html/renderer/head.php

W linii 151 znajdujemy poniższy kod:

// 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;
}

Przed zmienną $buffer dodajemy dodatkowy kod by całość wyglądała tak:

// Generate script file links
foreach ($document->_scripts as $strSrc => $strAttr)
{
// Code to disable mootools for your site (still loads it for your admin)
// Written by Brad Markle w/ InMotionHosting.com
$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;
}

Czyścimy pamięć cache przeglądarki i sprawdzamy. MooToolsa już być nie powinno.

Jeżeli chcemy usunąć jeszcze caption.js czy core.js wystarczy dodać je do zmiennej $js_to_ignore.

Tagged under: , , , , , , , ,

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *