Wie werden Templates ausgeführt?
From Joomla! Documentation
Templates werden in einem 2-Phasen-Processs ausgeführt, der vollen Gebrauch vom PHP-Parser macht um dem Template-Designer beachtliche Felxibilität und Leistung zu bieten. Templates werden in der Umgebung des Dokumenten-Objekts ausgeführt so dass das $this-Objekt immer die Instantiierung der JDocument-Klasse ist.
Bevor die Ausführung des Templates beginnt, wird die Komponente ausgeführt und seine Ausgabe für später zwischengespeichert.
Dann geht die Ausführung der Vorlage folgendermaßen weiter:
- template-Parameter (falls vorhanden) werden geladen.
- die template-Sprache (falls vorhanden) wird geladen.
- wenn der legacy-Modus an ist, dann werden die Konfigurations-Variablen als globals kopiert.
- die Vorlage-Datei (index.php) wird geladen und ausgeführt (durch PHP). Der Ausgang ist gepuffert. Dies ist Phase 1 des 2-Phasen-Prozess. Alles zwischen <?php and ?> tags wird als PHP-code ausgeführt. Alles, was außerhalb dieser tags wird ausgegeben, aber ansonsten ignoriert. Da die Ausgabe gepuffert ist, wird in diesem Stadium nichts an den Client-Webbrowser gesendet.
- eine favicon.ico Datei wird zuerst im Wurzelverzeichnis der Joomla!-Installation, dann im Wurzelverzeichnis des Templates gesucht. Das letztere wird das erste überschreiben.
- die Ausgabe, die in Phase 1 gepuffert wurde, wird jetzt nach <jdoc:include>-Elementen durchsucht. Für jedes gefundene jdoc-Element wird die geeignete renderer-Klasse geladen und seine render-mathode wird aufgerufen. Die Ausgabe der render-Methode erstetzt die <jdoc:include>-Elemente selbst im Ausgabepuffer. Im Falle der Modul-renderer-Klassen, löst dies die Ausführung der Module und die Pufferung der Ausgabe aus.
- Bestimmte template-spezifische HTTP-Header werden der Liste der Header die ausgegeben werden hinzugefügt.
- Die Steuerung wird dann an das JApplication Objekt zurückgegeben, das den Rest des Prozesses, die jetzt gerenderte Seite zurück zu dem Client-Webbrowser zu bekommen, durchführt.