Seite 1 von 2
Neue Sprachvariable die einen Benutzernamen enthält
Verfasst: 15.07.2006 12:59
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!

Verfasst: 15.07.2006 13:02
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
Verfasst: 15.07.2006 13:04
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.
Verfasst: 15.07.2006 13:08
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:
}
Verfasst: 15.07.2006 13:24
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

Verfasst: 15.07.2006 20:09
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
Verfasst: 16.07.2006 08:37
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
Verfasst: 16.07.2006 12:03
von opportunist
Hi MagMo,
vielen, vielen Dank! So klappt es super. Nun habe ich 'ne Menge gelernt.
Vielen Dank nochmal!
Verfasst: 20.08.2006 18:33
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..
ist das soweit richtig?
und dann muss ich bei /phpBB2/includes/page_header.php
folgendes reinschreiben unter
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.
Verfasst: 20.08.2006 19:43
von Miriam
Wenn Du lediglich den Usernamen einpflegen willst, da Du
vorschlägst, reicht doch
Code: Alles auswählen
$template->assign_vars(array(
'TS_NAME' => $userdata['username'],
...
in der PHP Datei und
in der zugehörigen tpl-Datei.... Wozu diese Verrenkungen?
