Seite 1 von 1

Select Default Language MOD für registrierte Mitglieder?

Verfasst: 10.01.2005 16:40
von pmw
Hallo!

Mit dem Select Default Language MOD können Gäste via Link recht einfach die Sprache ändern. Dies funktioniert auch einwandfrei und sieht ungefähr so aus:

z.B.:
http://www.website.de/phpbb2/index.php?language=german
http://www.website.de/phpbb2/index.php?language=english

Was muss ich an dem Code von dem MOD ändern, damit auch registrierte Mitglieder die Links nutzen können. Dazu müsste wahrscheinlich die Sprache in der MySQL Datenbank umgeschreiben werden. Wie muss ich das machen?

Viele Grüße
pmw

Quellcode des Select Default Language MODs. (befindet sich in der Datei common.php)

Code: Alles auswählen

// Start add - Select default language MOD
if( !isset($board_config['real_default_lang']) )
{
	$board_config['real_default_lang'] = $board_config['default_lang'];
}
$language = ( isset($HTTP_POST_VARS['language']) ) ? $HTTP_POST_VARS['language'] : $HTTP_GET_VARS['language']; 
if ($language) 
{ 
	$language=trim(strip_tags($language));	
	$board_config['default_lang'] = $language; 
	setcookie($board_config['cookie_name'].'_default_lang',$language , (time()+21600), $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); 
} else 
{
	if (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'].'_default_lang']) ) 
	{
	   $board_config['default_lang']=$HTTP_COOKIE_VARS[$board_config['cookie_name'].'_default_lang']; 
	} else
	{
		$dir = opendir($phpbb_root_path.'language');
		$lang_d = array();
		while (false !== ($file = readdir($dir)))
		{
			if ( ereg("^lang_", $file) && !is_file($dirname . "/" . $file) && !is_link($dirname . "/" . $file) )
			{
				$filename = trim(str_replace("lang_", "", $file));
				$displayname = preg_replace("/^(.*?)_(.*)$/", "\\1 [ \\2 ]", $filename);
				$displayname = preg_replace("/\[(.*?)_(.*)\]/", "[ \\1 - \\2 ]", $displayname);
				$lang_d[$displayname] = '1';
			}
		}
		closedir($dir);
		@asort($lang_d);
		@reset($lang_d);
		while ( list($displayname, $filename) = @each($lang_d) )
		{
			if (strpos($displayname,$_SERVER['HTTP_ACCEPT_LANGUAGE'])===0)
			{
				$language = $displayname;
				$board_config['default_lang'] = $language; 
				break;
			}
		}
	}
}
// End add - Select default language MOD