mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-26 04:52:36 +01:00
bad bad bad... do not init the auth object within the user object.
git-svn-id: file:///svn/phpbb/trunk@9256 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
fde2671cfa
commit
92e5c4e7b3
@ -133,16 +133,78 @@ class phpbb_user extends phpbb_session
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize user session
|
* Determine and set language
|
||||||
*
|
|
||||||
* @param bool $update_session_page If true the session page gets updated.
|
|
||||||
* This can be set to false to circumvent certain scripts to update the users last visited page.
|
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
public function init($update_session_page = true)
|
public function set_language($lang_name = '')
|
||||||
{
|
{
|
||||||
$this->session_begin($update_session_page);
|
// Try to determine language from browser
|
||||||
phpbb::$acl->init($this->data);
|
if (!$lang_name && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']))
|
||||||
|
{
|
||||||
|
$accept_lang_ary = explode(',', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
|
||||||
|
|
||||||
|
foreach ($accept_lang_ary as $accept_lang)
|
||||||
|
{
|
||||||
|
// Set correct format ... guess full xx_yy form
|
||||||
|
$accept_lang = substr($accept_lang, 0, 2) . '_' . substr($accept_lang, 3, 2);
|
||||||
|
|
||||||
|
if (file_exists($this->lang_path . basename($accept_lang)))
|
||||||
|
{
|
||||||
|
$lang_name = $accept_lang;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// No match on xx_yy so try xx
|
||||||
|
$accept_lang = substr($accept_lang, 0, 2);
|
||||||
|
if (file_exists($this->lang_path . basename($accept_lang)))
|
||||||
|
{
|
||||||
|
$lang_name = $accept_lang;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Still no luck?
|
||||||
|
$lang_name = (!$lang_name && isset(phpbb::$config['default_lang'])) ? phpbb::$config['default_lang'] : basename($lang_name);
|
||||||
|
|
||||||
|
// No appropriate language found ... so let's use the first one in the language
|
||||||
|
// dir, this may or may not be English
|
||||||
|
if (!$lang_name)
|
||||||
|
{
|
||||||
|
$dir = @opendir($this->lang_path);
|
||||||
|
|
||||||
|
if (!$dir)
|
||||||
|
{
|
||||||
|
trigger_error('Unable to access the language directory', E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
while (($file = readdir($dir)) !== false)
|
||||||
|
{
|
||||||
|
$path = $this->lang_path . $file;
|
||||||
|
|
||||||
|
if (!is_file($path) && !is_link($path) && file_exists($path . '/iso.txt'))
|
||||||
|
{
|
||||||
|
$lang_name = $file;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update language name if changed
|
||||||
|
if ($this->lang_name !== $lang_name)
|
||||||
|
{
|
||||||
|
$this->lang_name = $lang_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We include common language file here to not load it every time a custom language file is included
|
||||||
|
$lang = &$this->lang;
|
||||||
|
|
||||||
|
if ((include $this->lang_path . $this->lang_name . "/common." . PHP_EXT) === false)
|
||||||
|
{
|
||||||
|
die('Language file ' . $this->lang_path . $this->lang_name . "/common." . PHP_EXT . " couldn't be opened.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -170,51 +232,9 @@ class phpbb_user extends phpbb_session
|
|||||||
$this->date_format = phpbb::$config['default_dateformat'];
|
$this->date_format = phpbb::$config['default_dateformat'];
|
||||||
$this->timezone = phpbb::$config['board_timezone'] * 3600;
|
$this->timezone = phpbb::$config['board_timezone'] * 3600;
|
||||||
$this->dst = phpbb::$config['board_dst'] * 3600;
|
$this->dst = phpbb::$config['board_dst'] * 3600;
|
||||||
|
|
||||||
/**
|
|
||||||
* If a guest user is surfing, we try to guess his/her language first by obtaining the browser language
|
|
||||||
* If re-enabled we need to make sure only those languages installed are checked
|
|
||||||
* Commented out so we do not loose the code.
|
|
||||||
|
|
||||||
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
|
|
||||||
{
|
|
||||||
$accept_lang_ary = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
|
||||||
|
|
||||||
foreach ($accept_lang_ary as $accept_lang)
|
|
||||||
{
|
|
||||||
// Set correct format ... guess full xx_YY form
|
|
||||||
$accept_lang = substr($accept_lang, 0, 2) . '_' . strtoupper(substr($accept_lang, 3, 2));
|
|
||||||
$accept_lang = basename($accept_lang);
|
|
||||||
|
|
||||||
if (file_exists($this->lang_path . $accept_lang . "/common." . PHP_EXT))
|
|
||||||
{
|
|
||||||
$this->lang_name = phpbb::$config['default_lang'] = $accept_lang;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// No match on xx_YY so try xx
|
|
||||||
$accept_lang = substr($accept_lang, 0, 2);
|
|
||||||
$accept_lang = basename($accept_lang);
|
|
||||||
|
|
||||||
if (file_exists($this->lang_path . $accept_lang . "/common." . PHP_EXT))
|
|
||||||
{
|
|
||||||
$this->lang_name = phpbb::$config['default_lang'] = $accept_lang;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// We include common language file here to not load it every time a custom language file is included
|
$this->set_language($this->lang_name);
|
||||||
$lang = &$this->lang;
|
|
||||||
|
|
||||||
if ((include $this->lang_path . $this->lang_name . "/common." . PHP_EXT) === false)
|
|
||||||
{
|
|
||||||
die('Language file ' . $this->lang_path . $this->lang_name . "/common." . PHP_EXT . " couldn't be opened.");
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->add_lang($lang_set);
|
$this->add_lang($lang_set);
|
||||||
unset($lang_set);
|
unset($lang_set);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user