Author Topic: User language preference, stored in database  (Read 2609 times)

0 Members and 1 Guest are viewing this topic.

Offline olgaart

  • Newbie
  • *
  • Posts: 45
    • View Profile
    • FotoClub
User language preference, stored in database
« on: March 23, 2009, 02:11:21 PM »
User language preference, for registered user, stored in database,
that would be very usefull.

As an additional user field I have created  "user_lang" field in  table "users".
Based on $user_info['user_lang'] = "de" (for example), it should be possible to define a default user language directory "German",

if user not registered, the default language will stay as $config['language_dir']


« Last Edit: March 24, 2009, 09:50:34 AM by olgaart »

Offline olgaart

  • Newbie
  • *
  • Posts: 45
    • View Profile
    • FotoClub
Re: User language preference, stored in database
« Reply #1 on: March 24, 2009, 09:59:34 AM »
Modified [MOD] Language select (mod V@no, version B)
At the first look it works, but must be a better solution...

page_header.php:


$query_string = '';


if(!empty($HTTP_GET_VARS)) {
  foreach ($HTTP_GET_VARS as $key => $val) {
    if ($key != "l") {
      $query_string .= ($query_string != '' ? '&' : '?').$key."=".$val;
    }
  }
}


$lang_url = $site_sess->url($PHP_SELF.$query_string, '&');
$lang_url = preg_replace("'&(amp|#38);'i", "&", $lang_url);
$lang_url = preg_replace("/[?|&]l=[^?|&]*/", "", $lang_url);
$lang_url = str_replace("&", "&", $lang_url);
$handle = opendir(ROOT_PATH."lang");





if ($user_info['user_level'] == USER ){

if ($user_info['user_lang']== "de") {$config['language_dir'] = "deutsch";}
if ($user_info['user_lang']== "ru") {$config['language_dir'] = "russian";}
if ($user_info['user_lang']== "en") {$config['language_dir'] = "english";}
include_once(ROOT_PATH.'lang/'.$config['language_dir'].'/main.php');
}

 



elseif ($user_info['user_level'] == GUEST ){
$lang_select = "";

while ($folder = @readdir($handle)) {
  if (@is_dir(ROOT_PATH."lang/".$folder) && $folder != "." && $folder != "..") {
    if ($folder != $config['language_dir']) {
      $lang_select .= "<a class=\"lang\" href=\"".$lang_url.(preg_match("/\?/", $lang_url) ? "&" : "?")."l=".$folder."\" onMouseOver=\"(window.status='$folder'); return true\" onMouseOut=\"window.status=''; return true\"><img src=\"".TEMPLATE_PATH."/images/".$folder.".gif\" border=\"0\" alt=\"".$folder."\"></a>&nbsp;";
}else{
    $lang_select .= "<img src=\"".TEMPLATE_PATH."/images/".$folder."2.gif\" border=\"0\" alt=\"".$folder."\">&nbsp;";
    }
  }
}

$site_template->register_vars("lang_select", $lang_select);
}