Eine Seite, mit zwei Templates benutzen???

Alles zu Styles, Templates, Icons und Smilies für phpBB 2.0, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
TomW
Mitglied
Beiträge: 351
Registriert: 02.05.2002 22:55
Wohnort: Eichelsee
Kontaktdaten:

Eine Seite, mit zwei Templates benutzen???

Beitrag von TomW »

Sorry, mir ist aber kein besserer Titel eingefallen.



Ich habe das ezportal etwas angepasst, und habe in der Datei portal_body.tpl den Teil mit dem Willkommen und den Fetchpost in eine neue Datei namens startseite.tpl gesetzt.

An diese Stelle habe ich in der portal_body.tpl folgendes gesetzt

Code: Alles auswählen


               <?php
             switch($_GET["item"]){
                  case "Seite1":
                   include "/templates/NewDesign/lexikon.tpl";
                  break;
                  default:
                  include "/templates/NewDesign/startseite.tpl";                             
            }
      ?>
Wenn ich das Portal jetzt aufrufe werden zwar die Tabellen von der startseite.tpl angezeigt, nur statt dem Inhalt der Variablen stehen die Variablen selber dort z.B. {L_NAME_WELCOME}

Was muß ich da in die portal.php noch eintragen???

Danke

Swister
Benutzeravatar
|Crazor|
Mitglied
Beiträge: 78
Registriert: 09.04.2003 15:43
Wohnort: Jever
Kontaktdaten:

Beitrag von |Crazor| »

na, die templates werden nicht einfach included, sondern werden über die template class benutzt.
du kannst innerhalb einer tpl datei kein php benutzen (jedenfalls nicht ohne mod).
du musst in der entsprechenden php datei folgendes machen:

Code: Alles auswählen

$template->set_filenames(array(
	'handle_name' => 'template.tpl')
	);
dann kannst du die variablen im template mit
$template->assign_vars() oder $template->assign_block_vars()
zuweisen (siehe phpBB source)
dann folgendes zum ausgeben:

Code: Alles auswählen

$template->pparse('handle_name');
wenn du (wie in deinem fall, wenn ich das richtig verstehe) ein template in ein anderes einfügen willst, machst du statt pparse einfach sowas:

Code: Alles auswählen

$template->assign_var_from_handle('var_name', 'handle_name
');
Das bewirkt, dass das template, dass du vorher mit set_filenames geladen hast, durchgeparst wird und dann in die variable 'var_name' im anderen geladenen template eingefügt wird.

du musst also die entscheidungslogik, wann was angezeigt werden soll, in der jeweiligen php datei machen wie oben angegeben. ich rate davon ab, das mod zu installieren, das erlaubt, php in templates zu benutzen, es funzt nach meiner erfahrung nicht allzugut...
wenn du weitere hilfe brauchst melde dich
TomW
Mitglied
Beiträge: 351
Registriert: 02.05.2002 22:55
Wohnort: Eichelsee
Kontaktdaten:

Beitrag von TomW »

Danke ich werde es mal probieren.

|Crazor| hat geschrieben: ich rate davon ab, das mod zu installieren, das erlaubt, php in templates zu benutzen, es funzt nach meiner erfahrung nicht allzugut...
Also bei mir funktioniert das bis jetzt ohne Probleme.


Swister
TomW
Mitglied
Beiträge: 351
Registriert: 02.05.2002 22:55
Wohnort: Eichelsee
Kontaktdaten:

Beitrag von TomW »

Also irgendwie funzt das bei mir nicht, hab jetzt folgendes eingefügt:

Code: Alles auswählen

$template->set_filenames(array(
	'body' =>  'portal_body.tpl',
	'startbody' =>  'startseite.tpl')
);

Code: Alles auswählen

$template->assign_var_from_handle('START', 'startbody');
Wo muß das $template->assign_var_from_handle..... eigentlich hin, ist das egal???

Danke

Swister
Benutzeravatar
|Crazor|
Mitglied
Beiträge: 78
Registriert: 09.04.2003 15:43
Wohnort: Jever
Kontaktdaten:

Beitrag von |Crazor| »

vor dem aufruf von $template->pparse('body'); für das template der seite.
du hast die variable {START} definiert und sie ist auch kein teil eines <!-- BEGIN ... --> konstrukts?
TomW
Mitglied
Beiträge: 351
Registriert: 02.05.2002 22:55
Wohnort: Eichelsee
Kontaktdaten:

Beitrag von TomW »

|Crazor| hat geschrieben: du hast die variable {START} definiert...
Nein, wie und wo muß ich das machen???

Swister
TomW
Mitglied
Beiträge: 351
Registriert: 02.05.2002 22:55
Wohnort: Eichelsee
Kontaktdaten:

Beitrag von TomW »

Ich weiß jetzt wo ich die Variable hinsetzen muß, aber wie muß ich das genau schreiben, denn so klappt das nicht.
<?php
switch($_GET["item"]){
case "Seite1":
include "/templates/NewDesign/lexikon.tpl";
break;
default:
"{START}";
}
?>
Swister
TomW
Mitglied
Beiträge: 351
Registriert: 02.05.2002 22:55
Wohnort: Eichelsee
Kontaktdaten:

Beitrag von TomW »

Jemand eine Idee???

Swister
Antworten

Zurück zu „phpBB 2.0: Styles, Templates und Grafiken“