Seite 1 von 2
Template über Parameter wechseln
Verfasst: 05.04.2005 08:31
von Ambitition
Hi Leute!
Ich hoffe ich kann mein Frage verständlich beschreiben
Wenn man einen Topic über z.B. "
http://www.phpbb.de/viewtopic.php?t=83160" öffnet wird ja das Template "viewtopic_body.tpl" gezogen.
Ich bräuchte jetzt einen Code bei dem man das Template durch die Übergabe eines Paramters festlegen kann.
Ein Beispiel. Ich möchte einen Topic über z.B. "
http://www.phpbb.de/viewtopic.php?t=831 ... late=light[/b]" aufrufen. Durch den Zusatz "&template=light" soll dann anstatt "viewtopic_body.tpl" das Template "viewtopic_body_light.tpl" gezogen werden. Es sollte die Möglichkeit geben, mehrere verschiedene Templates in der "viewtopic.php" zu definieren.
Wenn der Parameter nicht angegeben wird (Forumstandard) soll ganz normal "viewtopic_body.tpl" gezogen werden.
Schon mal Danke für eure Hilfe...
Gruß
Verfasst: 05.04.2005 10:26
von Markus67
Hi ...
sollen die verschiedenen "Templates" für verschiedene Foren gelten oder ist die Auswahl willkürlich und soll beim Beitrag schreiben festgelegt werden?
Für die erste Variante würde es einen MOD geben.
Markus
Verfasst: 05.04.2005 10:48
von Ambitition
Weder noch
Ich stell mir das so vor das man in die viewtopic.php einen Code einbaut:
if template=light then viewtopic_body_light.tpl
if template=black then viewtopic_body_black.tpl
Wenn der Parameter nicht übergeben wird (Forumstandard) soll ganz normal viewtopic_body.tpl gezogen werden.
Es geht mir bei der Sache darum: Ich habe in meinem Board ein Forum das den Content für meine Homepage enthält (z.B. Infos über unsere Clique). Diesen Beitrag habe ich in der Navigationleiste (nicht phpbb) verlinkt. Wenn man diesen jetzt aufruft erscheint ja der Beitrag im Standard-Forum Layout, also mit Avatar, Infos etc... was nicht so toll aussieht.
Durch die verlinkung mit z.B. "
http://www.phpbb.de/viewtopic.php?t=831 ... late=light[/b]" möchte ich nur bezwecken das die verlinkten Beiträge in einem anderen Design (light, ohne Avatar, Infos etc..) dargestellt werden.
Verfasst: 05.04.2005 10:56
von mad-manne
Dann poste doch mal schnell, wieviel Varianten du haben willst, und wie die Abkürzungen (also die zu übergebenden template=xxx) lauten sollen, und wie dann die "echten" Namen der Templates lauten.
Habe schon was zusammen gehackt und kann dir das dann mal zukommen lassen
Gruss,
Manne,
Verfasst: 05.04.2005 11:00
von Ambitition
Coole Sache:
template=light > viewtopic_body_light.tpl
template=lightb > viewtopic_body_light_black.tpl
Die zwei sollten erst einmal reichen. Ich denk wenn ich mehr brauche kann ich das dann selber erweitern. Ein bisschen kenn ich mich damit schon aus, nur um sowas selber zu erstellen fehlt mir noch das Know-How.
Vielen Dank schonmal....
Verfasst: 05.04.2005 11:02
von mad-manne
Ambitition hat geschrieben:Die zwei sollten erst einmal reichen. Ich denk wenn ich mehr brauche kann ich das dann selber erweitern. Ein bisschen kenn ich mich damit schon aus, nur um sowas selber zu erstellen fehlt mir noch das Know-How.
O.K. Dann werde ich das auch erstmal nicht so super formal machen, da du bei 2 - 5 Templates auch mit meiner Lösung gut bedient sein wirst
Dauert ein paar Minütchen ...
Gruss,
Manne.
Verfasst: 05.04.2005 11:12
von mad-manne
[kurze Zwischenfrage] .. dir ist schon klar, das der Header und Footer "normal" bleiben werden, also durch die Lösung die ich gerade schreibe nicht beeinflusst werden?!
NUR die viewtopic_body.tpl wird dadurch parametergesteuert!
Alles klar

Manne
Verfasst: 05.04.2005 11:24
von mad-manne
Also dann geht's los
!! vorher Backups machen !!
ÖFFNE
viewtopic.php und FINDE:
Code: Alles auswählen
//
// Load templates
//
$template->set_filenames(array(
'body' => 'viewtopic_body.tpl')
);
ERSETZE durch:
Code: Alles auswählen
//
// [Quick&Dirty-Hack by mad-manne ... starts here] parameter-driven Template for viewtopic
//
// erstmal die benötigten Variablen initialisieren ...
$special_template = '';
$use_template = 'viewtopic_body.tpl';
// nun checken wir, ob überhaupt ein template-Parameter übergeben wurde
if ( isset($HTTP_GET_VARS['template']) )
{
$special_template = $HTTP_GET_VARS['template'];
}
// $use_template ist momentan noch auf den standard-template eingestellt ...
// sollte ein "zugelassener" template-Parameter übergeben worden sein, wird er jetzt hier eingestellt!
switch ( $special_template )
{
case 'light':
$use_template = 'viewtopic_body_light.tpl';
break;
case 'lightb':
$use_template = 'viewtopic_body_light_black.tpl';
break;
}
// und last but not least .. hier wird jetzt nicht mehr der fest codierte,
// sondern der Parameter-gesteuerte template zugeordnet ... Das war's ;-)
$template->set_filenames(array(
'body' => $use_template)
);
//
// [Quick&Dirty-Hack by mad-manne ... ends here] parameter-driven Template for viewtopic
//
Viel Spaß damit
Manne.
Verfasst: 05.04.2005 11:39
von Ambitition
Vielen Dank!
Wenn ich mir den Code so ansehe check ich was Du machst. Nur selber hätt ich das nicht fertig gebracht.
Ich bau ihn heut Abend gleich mal ein. Bin im Moment noch auf der Arbeit...
Wenn was nicht klappt melde ich mich nochmal bei Dir.
Gruß
Tommy
Verfasst: 05.04.2005 11:42
von mad-manne
Ambitition hat geschrieben:Wenn ich mir den Code so ansehe check ich was Du machst. Nur selber hätt ich das nicht fertig gebracht.
das ist "Learning by Code-Studiering"
Hast du auch das hier gelesen und verstanden?
mad-manne hat geschrieben:[kurze Zwischenfrage] .. dir ist schon klar, das der Header und Footer "normal" bleiben werden, also durch die Lösung die ich gerade schreibe nicht beeinflusst werden?!
NUR die viewtopic_body.tpl wird dadurch parametergesteuert!
Alles klar

Manne
Gruss,
Manne.