Includes Free Content
www.n-system.de Tutorials Joomla Mootools deaktivieren

Joomla Mootools abschalten (1.5 und 1.6)

Werden die Dateien mootools.js und caption.js nicht benötigt Homepage, so kann man Server Bandbreite und die Ladezeit verkürzen, indem man die Dateien deaktiviert. Zusammen machen die beiden Javascript Dateien knapp 75kb aus.

Joomla 1.5

Das Abschalten der Javascript Dateien kann man am besten im Template realisieren. Es bietet sich hier auch an eine Template-Variable zu definieren, mit man auswählen kann, ob die Dateien deaktiviert werden sollen. Ich bin nun so vorgegangen, dass ich erstmal abprüfe, ob eine der beiden Dateien deaktiviert werden soll. Falls das der Fall ist, hole ich mir das Array mit den Header-Daten. Dies ist ein mehrdimensionales Array aus dem uns hier das Array 'scripts' interessiert. Die Einträge dieses Array besitzen als Schlüssel immer den Namen der Script-Dateien. Mit unset kann man nun den jeweiligen Eintrag entfernen. Hier ein Code-Snippet, wie das beispielsweise aussehen kann.

// Variablen zum Beispiel über Template Parameter setzen
$disableMootoolsJS = ...;
$disableCaptionJS = ...;

if ($disableMootoolsJS || $disableCaptionJS) {
$aHeader=$this->getHeadData();

if ($disableMootools) {
unset($aHeader['scripts'][$this->baseurl . '/media/system/js/mootools.js']);
}
if ($disableJCaption) {
unset($aHeader['scripts'][$this->baseurl . '/media/system/js/caption.js']);
}

$this->setHeadData($aHeader);
}

Joomla 1.6

Hier kommt gibt es eine weitere Javascript Datei, die standardmässig eingebunden: core.js. Außerdem hat sich das Verhalten der Header-Erzeugung geändert. Es ist nun nicht mehr möglich das Array $headerstuff['scripts'] leer zu lassen. Als Abhilfe kann man hier zum Beispiel eine Dummy JS-Datei einbinden, häufig gibt es aber auch ein kleines bisschen Javascript-Code, den man im Template ohnehin benötigt - also kann man auch diesen nehmen. Ansonsten ist das Vorgehen ähnlich wie bei Joomla 1.5 zu obigem Ansatz.

// Variablen zum Beispiel über Template Parameter setzen
$disableMootoolsJS = ...;
$disableCaptionJS = ...;
$disableCoreJS = ...;

// Header-Array holen
$aHeader = $this->getHeadData();
if ($disableMootoolsJS || $disableCaptionJS || $disableCoreJS) {
if ($disableCoreJS) {
unset($aHeader['scripts'][$this->baseurl . '/media/system/js/core.js']);
}

if ($disableMootoolsJS) {
unset($aHeader['scripts'][$this->baseurl . '/media/system/js/mootools-core.js']);
}

if ($disableCaptionJS) {
unset($aHeader['scripts'][$this->baseurl . '/media/system/js/caption.js']);
}
}


$aHeader['scripts'][$template_path .'/javascript/script.js'] = array(
"mime" => "text/javascript",
"defer"=> false,
"async"=> false,
);

$this->setHeadData($aHeader);