Template-Syntax von phpBB

Allgemeine Beschreibung des Template-Systems von phpBB
In phpBB wird ein Template System verwendet, das sowohl in den Core Dateien als auch in Erweiterungen verwendet werden kann, um Daten an den Benutzer auszugeben. Das System existiert bereits seit phpBB 2.0.x und wurde seitdem zwar grundlegend erneuert, die grundsätzliche Verwendung ist aber in den wesentlichen Aspekten weiterhin gleich geblieben und nur in kleinen Details verändert. Seit phpBB 3.1.x ist die zugrundeliegende Template Engine Twig, so dass auch sämtliche Twig Befehle für Ausgaben verwendet werden können.

Im Folgenden werden die einfachsten Grundlagen der Verwendung des Template Systems angegeben,

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. Seit phpBB 3.0.x muss nur noch das Haupttemplate geladen werden, ggf. erforderliche weitere Dateien können in diesem Template eingebunden werden, in Erweiterungen ab 3.1.x kann einem diese Arbeit von der Helferklasse für Erweiterungen abgenommen werden (siehe Eigene phpBB Erweiterungen erstellen).

PHP-Code:

Code: Alles auswählen

$template->set_filenames(array(
    'main' => 'meine_seite.html',
    ));



Einfache Zuweisung


Zeigt Inhalt aus PHP im Template an.

PHP-Code:

Code: Alles auswählen

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

Code: Alles auswählen

{TITEL}


Mehrere Variablen auf einmal zuweisen


PHP-Code:

Code: Alles auswählen

$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: Alles auswählen

for($i=1; $i<=10; $i++) {
    $template->assign_block_vars('zahlen', array(
        'ZAHL' => $i,
        'VERDOPPELT' => $i*2
    ));
}
Template:

Code: Alles auswählen

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}. Dank der Zusatzfunktionen der Templates wird das inzwischen nur noch selten gebraucht.

IF Konstrukte


Seit phpBB 3.0.x werden IF Konstrukte im Template unterstützt. Syntax:

Code: Alles auswählen

<!-- IF S_VARIABLE_DIE_WAHR_IST -->
Dieser HTML Code wird nur ausgegeben wenn die Bedingung wahr ist
<!-- ELSE -->
Das ELSE ist optional, das hier erscheint nur wenn die Bedingung nicht erfüllt wird.
<!-- ENDIF -->


Hierbei muss die Template Variable S_VARIABLE_DIE_WAHR_IST z.B. per $template->assign_var (s.o.) befüllt werden.

Dateien in Dateien


Die Vorgehensweise ist hier seit phpBB 3.0.x stark vereinfacht und umfasst lediglich einen Include im Template:

Code: Alles auswählen

<!-- INCLUDE templatedatei.html -->


Eine Besonderheit ab phpBB 3.1 ist die Explizite Angabe der Erweiterung, in der der Include zu finden ist:

Code: Alles auswählen

<!-- INCLUDE @gn36_hookup/templatedatei.html -->

Hier wird die Templatedatei in der gn36/hookup Erweiterung gesucht.

Wenn eine CSS oder JS Datei eingebunden werden soll kann das ab phpBB 3.1.x ebenso erfolgen:

Code: Alles auswählen

<!-- INCLUDECSS cssdatei.css -->
<!-- INCLUDEJS javascriptdatei.js -->

Analog lässt sich auch hier explizit eine Erweiterung angeben. Hintergrund für die Befehle ist, dass man nicht gezwungen ist, den vollen Pfad zur Datei anzugeben, phpBB kümmert sich um die korrekte Ergänzung.

Zuletzt bearbeitet: 17.02.2018 13:26 von • Der Artikel wurde 48215 mal angeschaut.