phpBB.de - Die deutsche phpBB-Community
Stand: 30.12.2008 04:56
aktuelle Version auf phpBB.de
 
Apache At Work Communities Community Building Informationen und Hinweise Installation/Konfiguration/Update MySQL PHP phpBB-Optimierungen phpBB3 Rechtliches Server & Technik Snippets Templates und Mods
 



Knowledge Base Offline -> Templates und Mods -> Template-Syntax von phpBB

Template-Syntax von phpBB
Autor: Pyramide
Stand: 30.12.2008 04:56
Neuste Version unter: http://www.phpbb.de/doku/kb/template_syntax

Template-Syntax von phpBB

Eine Einführung in die Syntax der phpBB-Templates
Allgemeine Beschreibung des Template-Systems von phpBB
Um das Template-System verwenden zu können, musst du eine Datei nach dieser Vorlage erstellen: Vorlage für in phpBB eingebundene Seiten

Template-Datei(en) laden
Bevor mit Templates gearbeitet werden kann, müssen diese geladen werden. Die Dateinamen sind immer relativ zum phpBB/templates/gewähltes_template/ Verzeichnis.

PHP-Code:
Code:
$template->set_filenames(array(
    'meine_seite' => 'meine_seite.tpl',
    'fehler' => 'meine_seite_fehler.tpl'
));



Einfache Zuweisung
Zeigt Inhalt aus PHP im Template an.

PHP-Code:
Code:
$template->assign_var('TITEL', 'Willkommen auf meiner Seite');
Template:
Code:
{TITEL}


Mehrere Variablen auf einmal zuweisen
PHP-Code:
Code:
$template->assign_vars(array(
    'BESCHREIBUNG' => 'Das ist meine coole Seite',
    'INFORMATIONEN' => 'Auf dieser Seite finden sie viele tolle Sachen'
));


Schleifen / Blöcke
Mit Hilfe von Blöcken können z.B. mehrere Datensätze formatiert ausgegeben werden.

PHP-Code:
Code:
for($i=1; $i<=10; $i++) {
    $template->assign_block_vars('zahlen', array(
        'ZAHL' => $i,
        'VERDOPPELT' => $i*2
    ));
}
Template:
Code:
Wir Zählen von 1 bis 10:
<!-- BEGIN zahlen -->
Zahl: {zahlen.ZAHL}, das doppelte davon ist: {zahlen.VERDOPPELT}<br />
<!-- END zahlen -->

Für verschachtelte Schleifen sieht der erste Parameter von assign_block_vars z.B. so aus: zahlengruppe.zahlen und die Variablen im Template dann entsprechend {zahlengruppe.zahlen.ZAHL}. Beispiele dafür findest du z.B. index_body.tpl oder posting_smilies.tpl.
Ein anderer Anwendungsbereich für Blöcke sind If-Konstrukte:
Code:
if($irgendwas == true) {
    $template->assign_block_vars('switch_irgendwas', array());
}
In diesem Fall wird dem Block kein Inhalt zugewiesen, stattdessen steht zwischen <!-- BEGIN switch_irgendwas --> und <!-- END switch_irgendwas --> der HTML-Code, der nur angezeigt werden soll, wenn die if-Bedingung wahr ist. Beispiele dafür sind switch_user_logged_in und switch_user_logged_out in overall_header.tpl.

Dateien in Dateien
Zeigt den geparsten Inhalt einer Template-Datei als Variable in einer anderen Datei an (ähnlich wie der include-Befehl von PHP). Der Beispielcode macht den Inhalt der (mit dem Code weiter oben geladenen) Datei meine_seite_fehler.tpl als Variable {FEHLERMELDUNG} verfügbar.

PHP-Code:
Code:
$template->assign_var_from_handle('FEHLERMELDUNG', 'fehler');



Template ausgeben
Nachdem der komplette Inhalt dem Template zugewiesen wurde, kann das Template ausgegeben werden. Achtung: nachträgliches Zuweisen von Variablen/Blöcken bringt keine Veränderung mehr.

PHP-Code:
Code:
$template->pparse('meine_seite');



Beispiel
Ein Beispiel, welches die Template-Syntax demonstriert, kannst du dir hier runterladen:
http://www.phpbb.de/doku/foren_liste.zip



Knowledge Base Offline -> Templates und Mods -> Template-Syntax von phpBB