Seite 1 von 1

switches in bbcode.tpl? [snippet]

Verfasst: 11.10.2006 18:28
von QO
Hi

Ich will in der bbcode.tpl switches einbauen damit links nur für user die eingelogged sind funktionieren und ausgeloggte zum Loggin umgeleitet werden.

Dazu wollte ich z.B. die entsprechenden BBCodes mit <!-- BEGIN switch_user_logged_out --> bzw logged_in anpassen. Leider bekomme ich dann in beim Topic anschauen folgende Fehlermeldung und der Link wird nicht angezeigt...:

Code: Alles auswählen

Parse error: syntax error, unexpected '<' in C:\Forum\xampp\xampp\htdocs\Forum\includes\bbcode.php(113) : eval()'d code on line 64

Wie kann ich die normalen Switches in der bbcode.tpl verwenden?

Danke i.V.

QO

Re: switches in bbcode.tpl?

Verfasst: 11.10.2006 18:37
von Jensemann
QO hat geschrieben: Wie kann ich die normalen Switches in der bbcode.tpl verwenden?
Gar nicht. Die bbcode.tpl wird nicht von der Template-Klasse geparsed, sondern wie deine Fehlermeldung schon zeigt, in der bbcode.php. Wenn du dir den Code dafür in der bbcode.php ansiehst, wirst du feststellen das dieser im Vergleich zur Template-Klasse äusserst primitiv gestrickt ist und lediglich die paar Dinge kann die für die standard bbcode.tpl notwendig sind.

Verfasst: 11.10.2006 19:43
von QO
Hmm, gibts wenigstens eine möglichkeit das man bestimmte BBCodes für eingeloggten und ausgeloggten Usern anders anzuzeigen? Es müsste doch irgendwie möglich sein diese unterscheidung einzubauen, auch wenns nicht die standart Switches sind... Es würde ja reichen wenn die einzelnen BBCodes einen anderen BBCode-Switch bekommen...

QO

Verfasst: 11.10.2006 19:45
von Jensemann
Naja, am einfachsten wäre es wohl, ein paar PHP-Kenntnisse vorrausgesetzt, die bbcode.php so anzupassen das für eingeloggte User eine andere TPL-Datei verwendet wird.

Wenn du dies nicht selbst umsetzen kannst, empfehle ich dir einen Eintrag in der Job-Börse.

Verfasst: 11.10.2006 22:05
von QO
Danke für deinen Tipp mit einem 2. bbcode.tpl. Da ich nochnicht perfekt php kann, könnte evtl jemand das mal prüfen...

Hier der Code:

Finde in include/bbcode.php

Code: Alles auswählen

global $template
In Line, After add

Code: Alles auswählen

, $userdata
find

Code: Alles auswählen

	$tpl_filename = $template->make_filename('bbcode.tpl');
Replace with

Code: Alles auswählen

	if ( $userdata['session_logged_in'] )
	{
		$tpl_filename = $template->make_filename('bbcode.tpl');
	}
	else
	{	
		$tpl_filename = $template->make_filename('bbcode_logged_out.tpl');
	}
Dann wird noch die bbcode.tpl kopiert und in obigen bsp. als bbcode_logged_out.tpl
umbenannt. bbcode.tpl ist dann für eingelogged und bbcode_logged_out.tpl für ausgeloggte user.

QO

Verfasst: 11.10.2006 22:24
von Jensemann
EDIT: Denkfehler, dein Code reicht aus

[snipped]

Verfasst: 11.10.2006 23:06
von QO
Ist das wirklich notwendig? Wenn ich das richtig interpretiere, dann holt es sich die bbcode_tpl automatisch in der "function load_bbcode_template()" oder nicht?

Deine codeänderung in der "bbencode_second_pass" müsste dann vor der.....

Hab ich also doch keinen Denkfehler gemacht....

Danke