Mootools und Caption aus Joomla 1.5 entfernen

Achtung, öffnet in einem neuen Fenster. Drucken

Joomla Frontend caption mootools entfernenEin 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);
}
?>

Hinweis: Nehmen Sie diesen Eingriff also nur vor, wenn Sie die Scripte wirklich nicht benötigen und überprüfen Sie nach der Änderung, ob Ihre Website noch korrekt funktioniert.

Kommentare 

 
#1 Samland 2009-08-14 11:56
Hallo zusammen,
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
Zitieren
 
 
#2 David Neukirchen 2009-08-14 12:49
Wir weisen sowohl in diesem Tutorial, als auch im Template ausdrücklich auf Funktionalitäts probleme, die mit Komponenten entstehen können hin.

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.
Zitieren
 
 
#3 Samland 2009-08-17 10:10
Hups, dann war ich wohl etwas Betriebsblind. Der Hinweis auf der Features Seite ist mir entgangen. Sorry, den werd ich dan ngleich mal abschlaten.
Nix für ungut
F. Samland
Zitieren
 
 
#4 romacron 2009-10-31 18:18
Um das Problem des "alle Scripte deaktiviert" zu beheben ein kleiner Tip.

$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
Zitieren
 
 
#5 FRank 2009-12-22 16:15
Hallo,
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
Zitieren
 
 
#6 roman 2009-12-22 17:06
zitiere FRank:
Hallo,
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
Zitieren
 
 
#7 FRank 2009-12-22 17:43
Hallo,
leider kommt auch keine Fehlermeldung. Wenn ich mir den Quelltext der Seite anschaue dann steht dort nur noch:
Alles andere ist weg. :-(
Zitieren
 
 
#8 FRank 2009-12-22 17:49
Sorry, der Code wurde nicht übernommen.
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
Zitieren
 
 
#9 jörg 2010-04-21 09:56
hallo,
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
Zitieren
 
 
#10 kai 2010-08-31 16:44
zitiere romacron:
Um das Problem des "alle Scripte deaktiviert" zu beheben ein kleiner Tip.

$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

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
Zitieren
 
 
#11 romacron 2010-08-31 17:06
[qoute]
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
Zitieren
 
 
#12 David Neukirchen 2010-08-31 17:19
@roman danke.

@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.
Zitieren
 
 
#13 kai 2010-08-31 17:22
Dein Code habe ich oberstestelle, Bekomme schon eine warnung mit Dreamweaver wen ich das Code eingefügt habe.

Hier Fehler
Zitat:
Parse error: syntax error, unexpected T_STRING in /var/www/vhosts/seite.de/httpdocs/templates/rockxx/index.php on line 4


Und wen ich die oberen 2-3 Codes einfüge bekomme auch gleich eine warnung mit dreamwer.

Fehler
Zitat:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ')' in /var/www/vhosts/seite.de/httpdocs/templates/rockxx/index.php on line 28


Danke
Zitieren
 
 
#14 kai 2010-08-31 17:27
@David Neukirchen
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
Zitieren
 
 
#15 David Neukirchen 2010-08-31 17:33
ich glaube nicht, dass du den code richtig übernommen hast. die ausgeworfenen fehler deuten zumindest darauf hin.

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
}
Zitieren
 
 
#16 kai 2010-08-31 17:34
SORRY SORRY !
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
Zitieren
 
 
#17 kai 2010-08-31 17:49
David wir posten beide gleichseitig, sorry.

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
Zitieren
 
 
#18 kai 2010-08-31 19:15
Eine Frage noch

Bei der Plugin habe ich das endeckt, System - Mootools Upgrade, wozu soll das gut sein. Soll ich den aktivieren.

LG
Zitieren
 
 
#19 Peter 2011-12-11 02:15
VIELEN DANK!!
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ß
Zitieren
 
 
#20 أسعار الدولار اليوم 2011-12-16 05:38
hallo

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!
Zitieren
 
 
#21 Torsten.E 2012-03-27 18:10
Ich habe es ebenfalls versucht. Bei mir werden die Scripte aber nicht rausgenommen.
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
Zitieren