Seite 1 von 1

wert aus der db übernehmen

Verfasst: Do 10.Mär, 2005 11:42
von volker58
ich möchte in einer php datei das

Code: Alles auswählen

else if ( $m['user_level'] == VIP ) 
                        { 
                        $level = '<b style="color:#' . $theme['fontcolor8'] . '">VIP</b>'; 
                        } 
durch das

Code: Alles auswählen

else if ( $m['user_level'] == VIP ) 
                        { 
                        $level = '<b style="color:#' . $theme['fontcolor8'] . '">$plus_config['staff_vip'];</b>'; 
                        } 
ersetzen

aber das geht ja nun nicht, wie könnte ich das machen? aus der lang_main hätte ich ja noch

Code: Alles auswählen

$lang['Vip_panel'] = $plus_config['staff_vip'];
mrke gerade das was ich da in der lang_main eingetragen habe geht och net, hm in der lang_impressum geht es

Verfasst: Do 10.Mär, 2005 12:18
von AmigaLink
Was ist das für ein Code? Bzw. wo kommt er her?
Die Variable $plus_config['staff_vip'] muss definiert werden bevor du sie nutzen kannst. Das machst du indem du die common.php includierst. Und zwar bevor der obige Code zum einsatz kommt. :)

Verfasst: Do 10.Mär, 2005 12:40
von volker58
das ganze habe ich mir selber mal so ausgedacht für das impressum und da geht es auch, also ich kann vom acp aus die werte für das imp eintragen. nun wollte ich das noch machen für die ganzen staff(moderator, sponsor, vip und junioradmin), aber da häng ich nun kompl. das ganze ist ja nicht für mein forum, da währe das ja alles sinlose arbeit, es geht um die Dimension die ich da bissel weiterbauen will. wenn du möchtest kannste es dir mal anschauen im acp, schick ich dir mal die zugangsdaten wenn du möchtest

Verfasst: Do 10.Mär, 2005 13:13
von oxpus
Mal vorausgesetzt die Plus-Config steht zur Verfügung, müsste die Zeile so lauten:

Code: Alles auswählen

$level = '<b style="color:#' . $theme['fontcolor8'] . '">'.$plus_config['staff_vip'].'</b>';
Das sollte hinhauen, wenn Du in der common.php diesen Block findest:

Code: Alles auswählen

$sql = "SELECT *
	FROM " . PLUS_TABLE;
if( !($result = $db->sql_query($sql)) )
{
	message_die(CRITICAL_ERROR, "Could not query Plus-Config information", "", __LINE__, __FILE__, $sql);
}

while ( $row = $db->sql_fetchrow($result) )
{
	$plus_config[$row['config_name']] = $row['config_value'];
}
Nur: Ist denn das dimension ein umgebautes plus???

Verfasst: Do 10.Mär, 2005 14:51
von volker58
Nur: Ist denn das dimension ein umgebautes plus???
nein, ich denk die tabelle stammt von irgendeinem mod.
ich habe die dimension so einfach weitergebaut

so, nun mal sehen ob das andere geht

Verfasst: Do 10.Mär, 2005 15:06
von volker58
so, das geht vom feinsten, nur noch die sachen in der lang_main.php wollen net
alt:

Code: Alles auswählen

$lang['Vip_panel'] = "VIP";
wollte ich durch das ersetzen

Code: Alles auswählen

$lang['Vip_panel'] = $plus_config['staff_vip'];
und hier das wollte ich auch noch irgendwie ersetzen

Code: Alles auswählen

$lang['VIP_online_color'] = "%sVip%s";

Verfasst: Do 10.Mär, 2005 15:11
von oxpus
Die Plus-Config muss bereitstehen, bevor die Sprache eingebunden wird. Das ist im Normalfall nicht so.
Also kannst Du $lang['Vip_panel'] erst korrekt definieren, wenn Du diese im Script benötigst.
Zur Erklärung; Die lang_main.php wird in der functions.php eingebunden, diese wiederum durch die common.php. Da aber in der common.php die $plus_config erst nach nach den includes der diversen Stammdateien möglich ist, kannst Du nur die Sprachvariable im benötigsten Script selber zuweisen. Also nicht per lang_main.php.

Verfasst: Do 10.Mär, 2005 15:58
von volker58
okay, nach 5 mal lesen geschnallt , dein wissen :respect:

habe das nun in der page_teil.php ausgetauscht und das erste ist okay

für was steht %s ?
in der page_header.php müßte ich das ändern

Code: Alles auswählen

'L_WHOSONLINE_VIP' => sprintf($lang['VIP_online_color'], '<span style="color:#' . $theme['fontcolor8'] . '">', '</span>'),	
aber da werden die farben nimmer angezeigt wenn ich es so ändere

Code: Alles auswählen

	'L_WHOSONLINE_VIP' => sprintf($plus_config['staff_vip'], '<span style="color:#' . $theme['fontcolor8'] . '">', '</span>'),
in der lang sieht der abschnitt so aus

Code: Alles auswählen

$lang['VIP_online_color'] = "%sVIP%s";

Verfasst: Do 10.Mär, 2005 17:49
von volker58
Die Plus-Config muss bereitstehen
da kann ich ja für weitere sachen die ich noch so machen will auch eine andere nehmen? die config geht doch bestimmt überall?

Verfasst: Do 10.Mär, 2005 18:26
von oxpus
Was ist denn in der $plus_config['staff_vip'] enthalten?
Wenn dort, wie in der $lang['VIP_online_color'] keine Platzhalter wie "%s" vorhanden sind, wäre der korrekte Aufbau für die Farben:

Code: Alles auswählen

'L_WHOSONLINE_VIP' => '<span style="color:#' . $theme['fontcolor8'] . '">'.$plus_config['staff_vip'].'</span>'),
Deine Variante klappt nur mit $lang['VIP_online_color'], da hier eben 2 Platzhalter für Strings (%s) vorhanden sind.
Diese Platzhalter werden dann mittels sprintf() durch Text ersetzt, der fest codiert oder per Variable zur Verfügung steht. Und dabei werden die Platzhalter von links nach rechts durch die Texte ersetzt, die in dem Befehl sprintf(); in der selben Reihenfolge genannt werden.
Hier die genauer Definition des Befehls: http://de.php.net/manual/de/function.sprintf.php

Verfasst: Do 10.Mär, 2005 19:52
von volker58
also, in der db habe ich es so eingetragen

Code: Alles auswählen

INSERT INTO phpbb_plus VALUES ('staff_vip', 'VIP');
bekomm aber nun ne fehlermeldung
Parse error: syntax error, unexpected T_DOUBLE_ARROW in d:\wamp\www\dim020\includes\page_header.php on line 804

Verfasst: Do 10.Mär, 2005 20:00
von volker58
okay, fehler gefunden, die ) mußte weg

danke vielmals

Verfasst: Do 10.Mär, 2005 23:54
von oxpus
:lol:
Sorry, aber warum eigentlich so kompliziert?
Warum nicht $lang['VIP_online_color'] verwendet, ohne sprintf? Dann kommt da auch nur "VIP" raus...

Verfasst: Fr 11.Mär, 2005 06:38
von volker58
weil ich die namen, wie moderator, junior sponsor, moderator im acp einstellen kann, also andern namen vergeben kann

Verfasst: Sa 12.Mär, 2005 17:54
von volker58
habe zum aufbau eines phpbb noch ne frage, wenn eine information ausgegeben wird, zb. habe ich mein profil geändert, kommt ja die infoseite, oben header, die seite message_body.tpl und unten der footer. welche php datei ist dafür zuständig, weil da die config_plus auch nicht geht?

Verfasst: Sa 12.Mär, 2005 22:14
von oxpus
includes/functions.php. Dort die Funktion message_die().
Dort müsste nach der Definition der Funktion, also nach

Code: Alles auswählen

function message_die(...
{
noch ein

Code: Alles auswählen

global $plus_config;
eingefügt werden, dann stehen die Werte auch dort zur Verfügung.

Verfasst: So 13.Mär, 2005 08:08
von volker58
die antwort ist wie immer vom feinsten, vielen dank Bild

Verfasst: So 13.Mär, 2005 11:25
von oxpus
So soll es ja auch sein ;)
Und nichts zu danken.