Neue Sprachvariable die einen Benutzernamen enthält

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
opportunist
Mitglied
Beiträge: 33
Registriert: 10.02.2005 21:10
Wohnort: Braunschweig
Kontaktdaten:

Neue Sprachvariable die einen Benutzernamen enthält

Beitrag von opportunist »

Hallo,

ich habe gerade - ein bisschen vergeblich - versucht, eine Sprachvariable zu erstellen, die einen Benutzernamen enthält. Also so sollte es z.B. aussehen:

{L_HALLO} = Hallo {USERNAME}

und zweitens frage ich mich noch: kann ich direkt in einem Template einen Benutzernamen ausgeben, wie z.B. per {USERNAME}?

Vielen Dank schonmal! :-)
Das Vertrauen eines Menschen zu gewinnen kann Jahre dauern, es zu verlieren bedarf nur Sekunden!
Pingu625

Beitrag von Pingu625 »

Wenn du z.B. in der posting.php
folgendes suchst:

Code: Alles auswählen

	$template->assign_vars(array(
			'TOPIC_TITLE' => $preview_subject,
			'POST_SUBJECT' => $preview_subject,
			'POSTER_NAME' => $preview_username,
			'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']),
			'MESSAGE' => $preview_message,

			'L_POST_SUBJECT' => $lang['Post_subject'],
			'L_PREVIEW' => $lang['Preview'],
			'L_POSTED' => $lang['Posted'],
			'L_POST' => $lang['Post'])
Dann wirst du bemerken, dass in der posting_body.tpl Variablen in der Form {L_POST} verwendet werden. nun suche oben mal L_POST.
Und siehst du?

Du musst nur vorher in der PHP-Datei die Variable bestimmen; dann ist sie in der TPL-Datei aufrufbar ;)

mfg Pingu
Benutzeravatar
opportunist
Mitglied
Beiträge: 33
Registriert: 10.02.2005 21:10
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von opportunist »

Hi,

danke für deine Antwort. Eine "normale" Variable erstellen ist kein Problem, aber sie soll eben gleichzeitig den Usernamen der User behinhalten. So dass mein Text ausgegeben wird, inkl. des Namens des Users.

Und dann möchte ich noch wissen ob es eine Möglichkeit gibt, den Benutzernamen alleine irgendwie auszugeben, von Anfang an.
Das Vertrauen eines Menschen zu gewinnen kann Jahre dauern, es zu verlieren bedarf nur Sekunden!
Pingu625

Beitrag von Pingu625 »

mmh... Das müsste gehen.

Schau mal im Header: da steht ja immer: Logout[Name]

Dort müsstest du die nötigen Infos zu der gesuchten Variable finden ;)

Pingu

PS: Die Variable ist: $userdata['username']

Und um zu prüfen, ob der User online ist:

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
//Anweisungen für einen User der Online ist:
}
Benutzeravatar
opportunist
Mitglied
Beiträge: 33
Registriert: 10.02.2005 21:10
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von opportunist »

Hi,

danke für den Tipp. Ich habe in die Page-Header nun alles eingefügt, damit es so klappt:

Code: Alles auswählen

	'L_WELCOME' => $lang['WelcomeGreeting'] . ' [ ' . $userdata['username'] . ' ]' . $lang['WelcomeMSG'],
Über die Sprachvariablen funktioniert das auch. Nun ist das blöde, dass die Variable für den Usernamen zwingend an einer Stelle verankert ist - das macht mich recht unflexibel. Dazu kommt, dass er bei der normalen Variable auch noch die nervigen [] anzeigt. Wobei er die [] jedoch anzeigen soll beim Logout-Link.

Wenn ich mir die Sprachdatei angucke, gibt es viele Stellen, wo man bestimmte Dinge aus Variablen einfügen kann, z.B. mit %s. Es wäre nun ideal wenn ich nur eine Sprachvariable bräuchte, und den Usernamen in meinem Text mit %s anzeigen lassen kann, egal wo.

Ich habe mir den Code angeschaut, aber dazu keinen wirklich Ansatzpunkt gefunden.

Hast du da vielleicht auch noch eine Idee?

Vielen Dank für deine Hilfe :grin:
Das Vertrauen eines Menschen zu gewinnen kann Jahre dauern, es zu verlieren bedarf nur Sekunden!
Pingu625

Beitrag von Pingu625 »

Ich werde nacher mal schauen, aber vllt. findest du es früher:

Hier ein Tipp:
Schau mal, dort wo etwas ersetzt wird. Dann gehst du in die Datei, in der Der language Text gebraucht wird. Schaue dich dort nach einem Hinweis um, der die lang Variable informiert, was das %s (z.B.) bedeutet.

Findest du dort nichts; suchst du in den includierten Dateien (alle Dateien die include(xy.php) sind)

Wenn du dort nichts findest, suche ich auchmal...

Pingu
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,

in der Language-Datei erstellst du eine Variable folgender Art:

Code: Alles auswählen

$lang['Dein_Text'] = 'Hallo %s,<br /><br />wilkommen bei .....';
In den der Datei page_header fügst du dann ins Template-Array folgendes ein:

Code: Alles auswählen

'MEIN_HALLO_TEXT' => sprintf($lang['Dein_Text'], $userdata['username']),
Das %s in der Variable $lang['Dein_Text'] wird in diesem Beispiel durch den Usernamen ersetzt.

opportunist hat geschrieben:

Code: Alles auswählen

	'L_WELCOME' => $lang['WelcomeGreeting'] . ' [ ' . $userdata['username'] . ' ]' . $lang['WelcomeMSG'],
...
Dazu kommt, dass er bei der normalen Variable auch noch die nervigen [] anzeigt.
Dann lass die eckigen Klammern doch einfach weg:

Code: Alles auswählen

	'L_WELCOME' => $lang['WelcomeGreeting'] . ' ' . $userdata['username'] . ' ' . $lang['WelcomeMSG'],
Grüße
MagMo
Benutzeravatar
opportunist
Mitglied
Beiträge: 33
Registriert: 10.02.2005 21:10
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von opportunist »

Hi MagMo,

vielen, vielen Dank! So klappt es super. Nun habe ich 'ne Menge gelernt. :)

Vielen Dank nochmal!
Das Vertrauen eines Menschen zu gewinnen kann Jahre dauern, es zu verlieren bedarf nur Sekunden!
Yesus
Mitglied
Beiträge: 7
Registriert: 29.07.2006 21:14

Beitrag von Yesus »

hi, ich möchte sowas ähnliches machen.

und zwar soll oben im header ein link sein zum anklicken wo man auf einen ts server kommt mit entsprechenden aktuellen username.

durch ausprobieren konnte ich mir alles schon rauswusseln, nur brauch ich halt jetzt so ein {name} teil wo der aktuelle username drin steht...

nur mit der methode wie hier beschrieben geht es nicht..

ich hab in der language datei folgendes reingemacht..

Code: Alles auswählen

$lang['tsname'] = '%s';
ist das soweit richtig?


und dann muss ich bei /phpBB2/includes/page_header.php

folgendes reinschreiben unter

Code: Alles auswählen

$template->assign_vars(array(

Code: Alles auswählen

'TS_NAME' => sprintf($lang['tsname'], $userdata['username']),
nur bekomm ich dann halt so ein fehler beim aufrufen der index.php seite...

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /usr/export/www/hosting/board/phpBB2/includes/page_header.php on line 455


ich denke mal es ist recht einach für euch das poblem zu fixxen, nur ich hab leide kaum ahnung von php und html, daher hoffe ich das ihr mir den codeschnipsel zurecht macht.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Wenn Du lediglich den Usernamen einpflegen willst, da Du

Code: Alles auswählen

$lang['tsname'] = '%s';
vorschlägst, reicht doch

Code: Alles auswählen

$template->assign_vars(array(
        'TS_NAME' => $userdata['username'],
         ...
in der PHP Datei und

Code: Alles auswählen

{TS_NAME}
in der zugehörigen tpl-Datei.... Wozu diese Verrenkungen? :wink:
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“