Joomla-> Automatisch generierte Javascript Quellen

Diese Beschreibung kann unter Umständen durch Updates und neue Versionen nicht mehr aktuell sein!

Joomla versieht Ihre Webseite immer mit zusätzlichen Header Zeilen die es dynamisch anpasst.

<base href="http://beispielseite.de/index.php" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="Testwebseite" />
<meta name="generator" content="Joomla! - Open Source Content Management" />
<title>STARTSEITE</title>
<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-migrate.min.js" type="text/javascript"></script>
<script src="/media/system/js/caption.js" type="text/javascript"></script>
<script src="/media/jui/js/bootstrap.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(window).on('load', function() {new JCaption('img.caption');});
window.setInterval(function()
{
var r;
try{r=window.XMLHttpRequest?new XMLHttpRequest():
new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","./",true);r.send(null)}},3600000);
jQuery(document).ready(function(){
jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
</script>

Darunter befinden sich auch Javascriptquellen und Codes.

<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-migrate.min.js" type="text/javascript"></script>
<script src="/media/system/js/caption.js" type="text/javascript"></script>
<script src="/media/jui/js/bootstrap.min.js" type="text/javascript"></script>

und verschiedene Funktionen

<script type="text/javascript">
jQuery(window).on('load', function() {new JCaption('img.caption');});
window.setInterval(function()
{
var r;
try{r=window.XMLHttpRequest?new XMLHttpRequest():
new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","./",true);r.send(null)}},3600000);
jQuery(document).ready(function(){
jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
</script>

Welcher Befehl im Template fügt die Javascript Quellen und Codes ein?

Die im Template angegebenen, zu ladenden base, meta, title Tags, Javascript Dateien sowie kleinere Scripte

werden durch den Eintrag

<jdoc:include type="head" />

in der index.php Datei des verwendeten Templates erzeugt.

Wo sind die Funktionen die diese Einträge generieren

Die Einträge die durch die Zeile

<jdoc:include type="head" />

in der Template Datei eingefügt werden, werden durch eine Scriptfunktion in der Datei

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

erzeugt.

Folgender Scriptfunktionsteil erzeugt die Zeilen für die Scriptquellen

Die Scriptquellen

<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-migrate.min.js" type="text/javascript"></script>
<script src="/media/system/js/caption.js" type="text/javascript"></script>
<script src="/media/jui/js/bootstrap.min.js" type="text/javascript"></script>

werden von dem folgenden Funktionsteil erzeugt.

// Generate script file links
foreach ($document->_scripts as $strSrc => $strAttr)
{
$buffer .= $tab . '<script src="' . $strSrc . '"';
$defaultMimes = array(
'text/javascript', 'application/javascript', 'text/x-javascript', 'application/x-javascript'
);
if (!is_null($strAttr['mime']) && (!$document->isHtml5() || !in_array($strAttr['mime'], $defaultMimes)))
{
$buffer .= ' type="' . $strAttr['mime'] . '"';
}
if ($strAttr['defer'])
{
$buffer .= ' defer="defer"';
}
if ($strAttr['async'])
{
$buffer .= ' async="async"';
}
$buffer .= '></script>' . $lnEnd;
}

Folgender Scriptfunktionsteil erzeugt die Zeilen für die Scripte

Als nächstes der direkt darunter befindliche Funktionsteil die die Scripte

<script type="text/javascript">
jQuery(window).on('load', function() {new JCaption('img.caption');});
window.setInterval(function()
{
var r;
try{r=window.XMLHttpRequest?new XMLHttpRequest():
new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","./",true);r.send(null)}},3600000);
jQuery(document).ready(function(){
jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
</script>

erzeugt.

// Generate script declarations
foreach ($document->_script as $type => $content)
{
$buffer .= $tab . '<script type="' . $type . '">' . $lnEnd;
// This is for full XHTML support.
if ($document->_mime != 'text/html')
{
$buffer .= $tab . $tab . '//<![CDATA[' . $lnEnd;
}
$buffer .= $content . $lnEnd;
// See above note
if ($document->_mime != 'text/html')
{
$buffer .= $tab . $tab . '//]]>' . $lnEnd;
}
$buffer .= $tab . '</script>' . $lnEnd;
}