PHPBB-Templatesystem

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Jojoponn139
Mitglied
Beiträge: 133
Registriert: 05.08.2006 01:20
Wohnort: Berlin
Kontaktdaten:

PHPBB-Templatesystem

Beitrag von Jojoponn139 »

Also ich beziehe mich hier weniger speziell auf PHPBB als generell auf dieses System.
Ich beschäftige mich noch nicht allzulang mit PHP und wollte einfach mal über dieses ganze Template-Zeugs aufgeklärt werden.

Also soviel weiss ich von allein:
- Das ganze System dient dazu, nicht an ein festes Design gebunden zu sein.
- Die relevanten ausgaben werden in einer Art Variablen gespeichert, und dann im Template an den entsprechenden Stellen aufgerufen.

Jetzt habe ich aber mal ein paar Fragen:

- Sind das normale Variablen, in denen die Ausgaben gespeichert werden?
- Wenn ich mir vom PHPBB3-Template-System z.b. die Vorlage für den Header anschaue, dann ist das ein HTML-Datei. Sie trägt den Namen overall_header.html
Soweit ich weiss, kann HTML an sich jedoch mit Variablen nichts anfangen; in dieser Header-Datei begegnen mir jedoch andauernt Variablen in z.b. dieser Form:

Code: Alles auswählen

{UA_POPUP_PM}
Mit meinen PHP-Kenntnissen kann ich mir jedoch kein Bild machen, welche Art von Variablenaufruf das ist!
Dazu müsste ich erst wissen, wie diese Dateien vom PHP-Code gehandhabt werden.


--- ALSO Ich hoffe, ihr versteht was ich meine... bitte lasst mich nicht dumm sterben, sondern klärt mich etwas auf.
Jojoponn139
phpBB-de.org
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Du musst dir das so vorstellen

1. Es gibt die template.php
Dieser weist du mit:

Code: Alles auswählen

$template->set_filenames(array(
'header' => 'overall_header.tpl'
));
Die overall_header.tpl einzulesen.
Die template.php liest dann die overall_header.tpl ein
Und dann übergibst der template.php die Variabeln mit:

Code: Alles auswählen

$template->assign_vars(array(
'NAME1' => 'Name1',
'NAME2' => 'Name2'
));
Und dann sucht sich die template.php die Namen anhand der links im array definierten im vorher eingelsen code der overall_header.tpl
und macht damit eine suche und ersetze.
also etwas in der Form..

Code: Alles auswählen

$code_von_overall_header_tpl = preg_replace('/.*?(\{$name\}).*?/'i, $inhalt, $code_von_overall_header_tpl);
Und gibt dann den Code per

Code: Alles auswählen

$template->pparse('header');
wie ein print bzw. echo Befehl aus.

So musst du dir das Templatesystem vorstellen.
Ist natürlich um einiges komplexer.
Und es dient dazu PHP von HTML Code grösstmöglich zu trennen und um natürölich unkompliziert mehrere Styles anbieten zu können :wink:

s. auch:
KB:template_system
KB:template_syntax
Jojoponn139
Mitglied
Beiträge: 133
Registriert: 05.08.2006 01:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von Jojoponn139 »

Ok vielen Dank --- Ich konnte mir einfach nicht vorstellen, weshalb es dort solche Variablen gibt.

Aber du hast mich aufgeklärt!

-- DANKESCHÖN :grin:
Jojoponn139
phpBB-de.org
Antworten

Zurück zu „Coding & Technik“