Mootools und Caption aus Joomla 1.5 entfernen
Ein Großteil der Joomla Websites und Templates benötigt die mitgelieferten Javascripte Mootools.js und Caption.js nicht. Erfahren Sie hier, wie Sie diese beiden Scripte für das Frontend (Oberfläche, die der Benutzer sieht) deaktivieren und so Ihre Joomla Website deutlich schneller machen können.
Insbesondere bei Joomla Websites, die nur langsam laden, kann dies sinnvoll sein und die Performance (Ladezeit) stark verbessern.
Öffnen Sie dazu die index.php Datei Ihres Templates in einem geeigneten Editor.
- Joomla Root
- /templates/
- /ihr-template/
- index.php
Um die alle Scripte für das Frontend zu deaktivieren müssen Sie folgenden Code in den <HEAD> der index.php einfügen (also vor </head>):
<?php
$headerstuff=$this->getHeadData();
reset($headerstuff['scripts']);
foreach($headerstuff['scripts'] as $key=>$value){
unset($headerstuff['scripts'][$key]);
}
$this->setHeadData($headerstuff);
?>
Die Wirkung dieser Änderung können Sie überprüfen, wenn Sie den Quelltext der Website aufrufen. Die folgenden beiden Zeilen sollten nun nicht mehr im <HEAD> zu finden sein.
<script type="text/javascript" src="/media/system/js/mootools.js"></script>
<script type="text/javascript" src="/media/system/js/caption.js"></script>
Ihre Joomla Website läd nun deutlich schneller.
Leeren Sie Ihren Cache, wenn Sie den Code korrekt eingefügt haben, aber die Scripte trotzdem noch geladen werden.
Nur mootools.js und caption.js aus dem Header entfernen
Da durch oben abgebildeten Code ALLE Scripte aus dem Header entfernt werden und dies u.U. zu Problemen führen kann, können Sie mit der gleichen Vorgehensweise das ganze noch spezifizieren und nur die beiden Scripte mootools.js und caption.js entfernen. (Siehe Kommentar von Romacron, leicht abgewandelt)
<?php
$headerstuff=$this->getHeadData();
reset($headerstuff['scripts']);
unset($headerst uff['scripts'][$this->baseurl . '/media/system/js/mootools.js']);
unset($headerst uff['scripts'][$this->baseurl . '/media/system/js/caption.js']);
$this->setHeadData($headerstuff);
?>
Nachteilhaft an diesem Eingriff ist, dass Erweiterungen (Komponenten, Module und Plugins), die auf diese Scripte angewiesen sind unter Umständen nicht mehr fehlerfrei funktionieren. So ist zum Beispiel das Editieren eines Beitrags aus dem Frontend ohne diese Scripte nicht mehr möglich. Hier müssen Sie also genau abwägen, was Ihnen wichtiger erscheint.
Mootools und Caption nur im Frontend Editor laden
Wer auf den Frontend Editor angewiesen ist oder diesen gerne nutzt, der kann die beiden Scripte auch nur dann laden, wenn der Frontend Editor benutzt wird (task = edit). Die Methode bleibt die selbe, der Code lautet:
<?php
if (JRequest::getCmd('task') != 'edit') {
$headerstuff=$this->getHeadData();
reset($headerstuff['scripts']);
unset($headerst uff['scripts'][$this->baseurl . '/media/system/js/mootools.js']);
unset($headerst uff['scripts'][$this->baseurl . '/media/system/js/caption.js']);
$this->setHeadData($headerstuff);
}
?>


Kommentare
der Tip hat mir gestern ganz schön Kopfschmerzen bereitet. So wie es aussieht entfernt er nicht nur mootools.js sondern auch andere javascript Links. Bei der Verwendung der Phoca Gallery ist Vorsicht geboten. Die notwendigen Skripte,mootool s und z.B, highslide.js werden entfernt.
Ich verwedne das gn-blog Template wo dieser Tip bereits eingebaut ist. Bis eben habe ich mich noch gewundert, jetzt weis ich woran es liegt.
Vieleicht kann man ins Template ein Schalter einbauen, der diesen Tip an und abschaltet.
Gruß
F. Samland
Es gibt diesen "Schalter Mootools und Caption js aktivieren/deaktivieren" im GN-Blog Template (in den Template Parametern). Standartmäßig sind die Scripte sogar aktiviert.
Nix für ungut
F. Samland
$headerstuff = $this->getHeadData();
reset($headerst uff['scripts']);
unset($headerst uff['scripts']['/IHRE_DOMAAIN/media/system/js/mootools.js']);
unset($headerst uff['scripts']['/IHRE_DOMAAIN/media/system/js/caption.js']);
$this->setHeadData($he aderstuff);
somit spart man sich die foreachschleife und der overhead ist gebendigt
der erste Code zum entfernen funktioniert. Der Zweite Code: "Nur mootools.js und caption.js aus dem Header entfernen" verursacht eine leere weiße Seite. Eingebaut in der Template index.php vor
Was mache ich verkehrt?
Danke, Gruß Frank
Es bietet sich an, die Fehlermeldungen ausgeben zu lassen., dann besteht die Möglichkeit der Auswertung
leider kommt auch keine Fehlermeldung. Wenn ich mir den Quelltext der Seite anschaue dann steht dort nur noch:
Alles andere ist weg. :-(
Es steht im Quelltext noch der Doctype, Anfang und Ende von Body und Head, ohne das dort was drinne steht also so wie wenn man zum Beispiel im Dreamweaver eine neue HTML-Seite öffnet, quasi das Anfangs-HTML-Gerüst
Gruß
Frank
danke für die lösungen. ich probiere schon eine zeit lang mit der mootools/jquery problematik in bezug auf joomla herum.
ein kleiner tipp: wenn man die zweite möglichkeit (nur mootools und caption) kopiert schleicht sich ein fehler ein. ein leerzeichen in der variable $headerstuff
zeile 5 und 6
statt "$headerstuff" kopiert man "$headerst uff"
lg
Wo soll das rein? kannst Du bitte eine deutliche Anleitung geben.wurde danach auch slidershows und so Funktioniern.
Ich habe oberen Codes versucht nur das erste funktioniert die anderen beiden verursachen Fehler Meldung. aber das hat Nachteile wie auch schon beschrieben. Ich brauche auch bisschen Animation wie slideshow und so..
Danke
Wo soll das rein?
[/qoute]
Gute, Frage!
Der Reset muss an oberster Stelle des aktivierten Frontend-Templates in die index.php
Pfad: im Joomla- Installations-Verzeichnis
/templates/IHR_TEMPLATE/index.php
… hier mit den normalen Webeseiten-Html Bestandteilen.
(reicht das so?)
[qoute]
Würde danach auch slidershows und so funktioniern.
[/qoute]
Die hängt ganz davon ab, welches javascript-Framework Deine Slideshow benötigt.
Die Fehlermeldung wäre an dieser Stelle interessant, da man anhand derer den Fehler lokalisieren oder eingrenzen kann.
Deine Animationen möchte Dir gewiss keiner absprechen. Der oben angeführte Script-Abschalter wurde hier aufgeführt, weil viele Joomla-Webseiten zu viel javascript-Ballast an den Clienten geliefert wird.
Bevor Du nun aber alle Fehlermeldungen hier herein postest, frag doch vielleicht einmal bei David(dem Inhaber dieser Seite)nach.
Viele Grüsse Roman
@kai
welche fehlermeldungen bekommst du? Hast du den Code richtig übernommen? (copy und paste verursacht manchmal falsche leerzeichen, siehe kommentar von jörg)
Wenn deine Slideshow das Mootools Framework verwendet, wird sie natürlich nicht mehr funktionieren, wenn du die entsprechenden JS Datei (mootools.js) nicht lädst.
Es gibt allerdings auch die Möglichkeit mootools nur auf der startseite (wo sich slideshows regelmäßig befinden) zu laden und auf den restlichen seiten auszublenden.
Hier Fehler
Zitat:
Und wen ich die oberen 2-3 Codes einfüge bekomme auch gleich eine warnung mit dreamwer.
Fehler
Zitat:
Danke
Wir haben beide gleichseitig gepostet SORRY.
Ja die Codes habe ich schon richtig übernommen, Wie mache ich das das die moos beschtimmte seite laden.
Danke
um die scripte auf der startseite zu laden, auf den restlichen seiten aber nicht, musst du eine php if abfrage, um den "mootools/caption ausblenden-block" setzen (wenn nicht startseite, dann schließe scripte aus):
if (!JRequest::get Var('view') == 'frontpage') {
//hier muss der code rein
}
Das beitrag vom jörg habe ich übersehen. Entschuldigung.
Ich habe jetzt die 2 genommen, kann ich damit auch andere seiten anzeigen lassen, ich hätte noch 2 seiten die ich anzeigen möchte.
Danke
Also das dieser moos die Seite extrem bremst ist schon bekannt, wehre eine Module sehr nützlich in dem Mann eingeben kann wo und welche Module man die moos einsetzen möchte.
Danke
Bei der Plugin habe ich das endeckt, System - Mootools Upgrade, wozu soll das gut sein. Soll ich den aktivieren.
LG
Diese beiden .js Dateien haben mir in anderen Browsern als Firefox alle möglichen Scripte gestört.
Nach dem bisschen Code sind nun alle Fehler weg.
Ein Stein in der Größe vom Mond fällt mir vom Herzen!
gruß
vielen dank für die hilfe das bringt einen echt weiter, vorallem haben die ganzen JS dateien meine seite total lahm gemacht jetzt läuft sie toll dank deiner hilfe danke!
Joomla 2.5.3
Ich habe den PHP-Code vor
jdoc:include type="head"
gesetzt, denke dort gehört er auch hin.
Ich verwende ein eigenes TEmplate, vielleicht wird noch zusätzlich etwas benötigt, damit es geht ?
Gruss natürlich an alle Mitstreiter