phpBB Templates in Apolda Templates

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
Kamikaze
Mitglied
Beiträge: 5
Registriert: 03.11.2004 14:42

phpBB Templates in Apolda Templates

Beitrag von Kamikaze »

Hi,

habe meine Webseite komplett auf Templates umgestellt. Habe dabei die Apolda Template Klasse (heißt mittlerweise glaube ich anders) benutzt. Habe Probleme die Forumsseiten in meiner Templatestruktur einzubinden.

Habe beispielsweise eine Hauptseite mit den Platzhaltern {Banner}, {Navi} und {Inhalt}. Dem Platzhalter {Inhalt} möchte ich nun die fertige Forumsseite zuweisen. Mit

Code: Alles auswählen

$tpl->assign('Inhalt', DAS FORUMTEMPLATE);
geht das aber leider nicht, weil assign als Parameter ein Apolda Template haben will. Außerdem beschwert sich der PHP Parser, wenn ich zwei Template Klassen include.

Falls auf diesem Weg keine Lösung möglihc ist, so kann mir vielleicht jemand schreiben ob ich stattdessen meine Struktur der Hauptseite auch mit der Templateklasse von phpBB verwirklichen kann! Wäre zwar ein wenig Arbeit, doch nicht zu ändern.
Kamikaze
Mitglied
Beiträge: 5
Registriert: 03.11.2004 14:42

Beitrag von Kamikaze »

nach oben schieb!

Sind erst 22 Stunden, ok! Ich hoffe die 2 Stunden weniger Warten verzeiht ihr mir.
Kamikaze
Mitglied
Beiträge: 5
Registriert: 03.11.2004 14:42

Beitrag von Kamikaze »

keiner eine Idee? Ich habe doch wirklich die Suche benutzt, den Knigge gelesen und sogar eure Doku zu den Templates. Habe also alles möglihce getan um mir selbst zu helfen.

Gut, dann nehme ich einfach mal an, dass ich meine bisherigen Templates mit der phpBB Templateklasse neu schreiben muss. Hierzu eine Frage!

wenn ich mehrere Templates für eine Seite benutzen will, muss ich die Templates nacheinander laden? Oder kann ich vielleicht auch eine HAupttemplateseite erstellen, in der ich die Struktur meiner Seite festlege. Also ungewähr so:


-------------------------------------------------------------------------------
_____________________{Banner}____________________________
--------------------------------------------------------------------------------
___________|__________{Navioben}_________________________
--------------------------------------------------------------------------------
___________|
{NAvilinks}_|___________{Inhalt}
--------------------------------------------------------------------------------
________________________{Schluss}_________________________
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Also an deiner Stelle würde ich die phpBB Templatesklasse nehmen, da ich und wahrscheinlich die anderen auch, net mit der Fremden Templateklasse auskennen.

Bei der Umstellung auf die phpBB-Templateklasse sollte nur geringfügig ein Umbau vorhanden sein.

Bei der TemplateKlasse von phpBB ist es wichtig bei der Instanzerzeugung den Pfad zum Templateverzeichnis als einzigstes Argument zu übergeben.

Code: Alles auswählen

 $tpl = new Template('./templates/subSilver');
Wenn du nun eine Seite zum Parsen holen möchtest wie folgt vorgehen:

Code: Alles auswählen

$tpl->set_filenames(array('login'=>'login.tpl'));
Um Variablen zu parsen im Template dann die Methoden assign_vars() oder assign_block_vars() verwenden.

assign_vars benötigt nur ein Paramater (ein Array) in dem wie bei deinem obigen Beispiel vorzugehen ist:

Code: Alles auswählen

$tpl->assign_vars(array('HTML' => $doctype));
assign_block_vars benötigt zwei Parameter. 1.) Das Schlüsselwort und 2.) wieder ein Array wie bei assign_vars().

zu 1.) Das Schlüsselwort bestimmst du wie folgt:

Im Templates sollte es so aussehen:

Code: Alles auswählen

<!-- BEGIN schluesselwort -->
<h1>{schluesselwort.VAR]</h1>
<!-- END schluesselwort -->
Die Kommentare müssen da sein und das Schlüsselwort solltest du selbst bestimmten. Wichtig ist nur, das zwischen den Kommentaren stehende HTML-Code nur dann angezeigt wird, wenn du in der php-Datei auch dies zuweist. Die Variablen sind wie immer zu bekennzeichnen, aber mit dem unterscheid, das das schlüsselwort gefolgt mit einem Punkt (.) davor stehen kann.
Wenn du globale Variable in den Code einschleusen willst, bracuhst du das Schlüsselwort vor der Variable auch nicht, aber es wird auch nur dann angezeigt, wenn der assign_block_vars() mit dem zuständingen Schlüsselwort definiert wird.

Als Praxisnahes Beispiel empfehle ich dir mal die Login-Tabelle auf der index_body.tpl zu betrachten.
Dort werden globale Variablen im HTML Code verwendet, welche zwischen den Kommentaren steht. Ist der User angemeldet, wird der Block nicht angezeigt, wenn er aber nicht angemeldet ist, wird dieser Angezeigt.

Für ne Zuweisung sieht der PHP-Code wie folgt aus:

Code: Alles auswählen

$tpl->assign_block_vars('schluesselwort', array('VAR' => $var));
und nun zum Parsen:

Du rufst die Methode pparse() auf die als Paramter den Namen der Template haben will, den du bei set_filenames() als erstes angegeben hast:

Code: Alles auswählen

$tpl->pparse('login');
das wars schon ;)

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Antworten

Zurück zu „Coding & Technik“