Entwicklung/Codedoku: Unterschied zwischen den Versionen

→‎Templates: ergänzungen
(→‎Templates: ergänzungen)
Zeile 270: Zeile 270:
== Templates ==
== Templates ==


[[wikipedia:Template (Programmierung)|Templates]] dienen in Webanwendungen dazu, die Generierung von aus- und einzugebenden Daten von deren HTML-Darstellung zu trennen. HTML- und JavaScript-Code wird komplett in den Templates untergebracht, PHP-Code soweit wie irgend möglich in PHP-Scripten.
[[wikipedia:Template (Programmierung)|Templates]] dienen in Webanwendungen dazu, die Generierung von aus- und einzugebenden Daten von deren HTML-Darstellung zu trennen. HTML- und JavaScript-Code wird komplett in den Template-Dateien untergebracht, PHP-Code soweit wie irgend möglich in PHP-Scripten.
 
Die Einbindung der Templates in den PHP-Programmablauf geschieht wie folgt:
# Festlegung, welche Templatedatei verwendet wird
# Zuweisung von variablen Inhalten an das Template
# Darstellung des Templates
Für alle drei Punkte gibt es entsprechende Bibliotheksfunktionen.


=== lib1-Templates ===
=== lib1-Templates ===


Die alte Library enthält ein eigenes, simples Templatesystem. Die Templatedateien befinden sich in {{Codepath|htdocs/lang/de/ocstyle}} und enthalten den auszugebenden HTML- und JavaScript-Code. Für alle variablen Inhalte werden Platzhalter wie z.B. <code>{cachename}</code> eingesetzt; die PHP-Variable wird dann übergeben mit
Die alte Library enthält ein selbstgemachtes, simples Templatesystem. Die Templatedateien befinden sich in {{Codepath|htdocs/lang/de/ocstyle}} und enthalten den auszugebenden HTML- und JavaScript-Code. Der Name der Template-Datei wird im PHP-Code über die globale Variable <code>$tplname</code> festgelegt, z.B.
:<code>$tplname = 'newcache';</code>


tpl_set_var('cachename', $cachename);
Für alle variablen Inhalte werden im Template Platzhalter wie z.B. <code>{cachename}</code> verwendet; die PHP-Variable wird dann übergeben mit
 
:<code>tpl_set_var('cachename', $cachename);</code>


Sofern der variable Teil auch HTML-Code oder etwas zu Übersetzendes enthält, wird dies in speziellen Include-Dateien abgelegt, z.B.
Sofern der variable Teil auch HTML-Code oder etwas zu Übersetzendes enthält, wird dies in speziellen Include-Dateien abgelegt, z.B.
Zeile 284: Zeile 293:


Die Include-Datei wird im PHP-Hauptmodul eingebunden und die Variablen per <code>mb_ereg_replace</code> ersetzt, bevor das Ganze per <code>tpl_set_var()</code> ans Template übergeben wird.
Die Include-Datei wird im PHP-Hauptmodul eingebunden und die Variablen per <code>mb_ereg_replace</code> ersetzt, bevor das Ganze per <code>tpl_set_var()</code> ans Template übergeben wird.
:<code>tpl_BuildTemplate();</code>
stellt schließlich das Template dar und beendet das PHP-Script.


Alle [[Opencaching]]-Seiten außer OC.de und OC.se/no verwenden noch das lib1-Templatesystem.
Alle [[Opencaching]]-Seiten außer OC.de und OC.se/no verwenden noch das lib1-Templatesystem.
Zeile 311: Zeile 323:


Die zwischengespeicherten Templates werden in <code>htdocs/cache2/smarty</code> abgelegt.
Die zwischengespeicherten Templates werden in <code>htdocs/cache2/smarty</code> abgelegt.
Auf die Initialisierung des Templates folgen Variablen-Zuweisungen (s.u.) und schließlich die Darstellung mit
:<code>$tpl->display();</code>
die das PHP-Script beendet.




Zeile 391: Zeile 408:
Auch der Inhalt (''body'') von Emails wird über Templates erzeugt.
Auch der Inhalt (''body'') von Emails wird über Templates erzeugt.


lib1-Email-Templates befinden sich in {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}} und werden von den entsprechenden PHP-Modulen direkt per <code>mb_ereg_replace()</code> aufgelöst.
lib1-Email-Templates befinden sich in {{Codepath|htdocs/lang/de/ocstyle/email}}, {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}} und werden von den entsprechenden PHP-Modulen direkt per <code>mb_ereg_replace()</code> aufgelöst.


lib2-Email-Templates liegen in {{Codepath|htdocs/templates2/mail}} und werden von <code>mail.class.php</code> per Smarty verarbeitet.
lib2-Email-Templates liegen in {{Codepath|htdocs/templates2/mail}} und werden von <code>mail.class.php</code> per Smarty verarbeitet.
Zeile 397: Zeile 414:
=== OKAPI ===
=== OKAPI ===
Die OKAPI hat ein eigenes Templatesystem; mehr dazu im Abschnitt [[#OKAPI|OKAPI]].
Die OKAPI hat ein eigenes Templatesystem; mehr dazu im Abschnitt [[#OKAPI|OKAPI]].
 
== CSS Style Sheets ==
== CSS Style Sheets ==
Die Style Sheets befinden sich in
Die Style Sheets befinden sich in
2.505

Bearbeitungen