Hallo Tobi,
danke dir für den Tipp, hätte da eigentlich selber drauf kommen müssen.
Ich habe es jetzt testweise so gemacht, wobei das immer noch nicht die Lösung ist. Für die Themenseiten geht es ganz gut, aber sobald eine $sid angehängt ist, geht es nichtmehr, da lang=* in der Url zwischen drinnen steckt.
funktions.php
Code: Alles auswählen
//SVI language switch
$user_lang = request_var('lang', $user->lang_name);
$sql = 'SELECT lang_id, lang_iso, lang_local_name
FROM ' . LANG_TABLE . "
ORDER BY lang_id";
$result = $db->sql_query($sql);
while ($lang_row = $db->sql_fetchrow($result))
{
$iso = $lang_row['lang_iso'];
$lang_name = $lang_row['lang_local_name'];
$template->assign_block_vars('langswitch', array(
'LANGSWITCH' => $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?lang=" . $iso,
'FLAGSWITCH' => append_sid("{$phpbb_root_path}styles/" . $user->theme['theme_path'] . '/theme' . "/images/flags/" . $iso .".png"),
'ALTSWITCH' => $lang_name,
));
}
$db->sql_freeresult($result);
//-------------------------
overall_header.html
Code: Alles auswählen
<!-- Language -->
<div>
<!-- BEGIN langswitch -->
<a href="http://{langswitch.LANGSWITCH}"><img src="{langswitch.FLAGSWITCH}" alt="Flagge {langswitch.ALTSWITCH}" /></a>
<!-- END langswitch -->
</div>
<br />
<!-- Language -->
@Dr.Death
Aber trotzdem würde mich es interessieren, wie ich meine ganzen Seiten am einfachsten in die viewonline.php bringe. Das wäre für eine Statistik z.B. "Wer war wo online" interessant.
[EDIT]
so, ich habe es jetzt auch für die Foren hinbekommen, aber eine Sache gefällt mit noch nicht dabei. Ich verwende dabei
preg_replace(, aber da habe ich noch ein kleines Problem damit, so sieht es jetzt aus:
Code: Alles auswählen
//SVI language switch
$user_lang = request_var('lang', $user->lang_name);
$url_lang = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$sql = 'SELECT lang_id, lang_iso, lang_local_name
FROM ' . LANG_TABLE . "
ORDER BY lang_id";
$result = $db->sql_query($sql);
while ($lang_row = $db->sql_fetchrow($result))
{
$iso = $lang_row['lang_iso'];
$lang_name = $lang_row['lang_local_name'];
$lang_in[1] = '/=en/';
$lang_in[2] = '/=de/';
$lang_out = '='.$iso;
$url_lang = preg_replace($lang_in, $lang_out, $url_lang);
$template->assign_block_vars('langswitch', array(
'LANGSWITCH' => $url_lang,
'FLAGSWITCH' => append_sid("{$phpbb_root_path}styles/" . $user->theme['theme_path'] . '/theme' . "/images/flags/" . $iso .".png"),
'ALTSWITCH' => $lang_name,
));
}
$db->sql_freeresult($result);
//-------------------------
Ich möchte ganz gerne die Ersetzung für
$lang_in[1] = '/=en/'; für die Sprache (de, en, ....) die Variable
$user_lang dafür verwenden, dort steht die aktuelle Usersprache drinnen. Wie bekomme ich die in die
$lang_in rein, ohne dass ich eine Fehlermeldung bekomme?
[EDIT2]
So, ich habs rausbekommen, es muss so aussehen:
$lang_in = "~=$user_lang~i";
[EDIT3]
Hier noch ein kleiner Nachtrag. Wenn keine lang=* angegeben war, dann konnte man auch keine Sprache wählen. Der Teil kommt noch dazu, um die lang=* anzuhängen.
Code: Alles auswählen
// Wenn keine lang= angegeben wurde
$lang_in = "~=$user_lang~i";
if (preg_match($lang_in, $url_lang))
{
$url_lang;
}
else
{
$url_lang = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?lang=" . $user_lang . '&' . $_SERVER['QUERY_STRING'];
}
Gruß Helmut