1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-24 03:54:10 +01:00

[feature/php-events] Add core.user_setup event

This event can be used to load language files globally so it fixes PHPBB3-8270

PHPBB3-8270
PHPBB3-9550
This commit is contained in:
Joas Schilling 2012-08-01 11:07:34 +02:00
parent 01369dd7f8
commit d152c20e4b

View File

@ -76,18 +76,18 @@ class phpbb_user extends phpbb_session
function setup($lang_set = false, $style_id = false)
{
global $db, $phpbb_style, $template, $config, $auth, $phpEx, $phpbb_root_path, $cache;
global $phpbb_dispatcher;
if ($this->data['user_id'] != ANONYMOUS)
{
$this->lang_name = (file_exists($this->lang_path . $this->data['user_lang'] . "/common.$phpEx")) ? $this->data['user_lang'] : basename($config['default_lang']);
$this->date_format = $this->data['user_dateformat'];
$user_lang_name = (file_exists($this->lang_path . $this->data['user_lang'] . "/common.$phpEx")) ? $this->data['user_lang'] : basename($config['default_lang']);
$user_date_format = $this->data['user_dateformat'];
$user_timezone = $this->data['user_timezone'];
}
else
{
$this->lang_name = basename($config['default_lang']);
$this->date_format = $config['default_dateformat'];
$user_lang_name = basename($config['default_lang']);
$user_date_format = $config['default_dateformat'];
$user_timezone = $config['board_timezone'];
/**
@ -107,7 +107,7 @@ class phpbb_user extends phpbb_session
if (file_exists($this->lang_path . $accept_lang . "/common.$phpEx"))
{
$this->lang_name = $config['default_lang'] = $accept_lang;
$user_lang_name = $config['default_lang'] = $accept_lang;
break;
}
else
@ -118,7 +118,7 @@ class phpbb_user extends phpbb_session
if (file_exists($this->lang_path . $accept_lang . "/common.$phpEx"))
{
$this->lang_name = $config['default_lang'] = $accept_lang;
$user_lang_name = $config['default_lang'] = $accept_lang;
break;
}
}
@ -127,6 +127,28 @@ class phpbb_user extends phpbb_session
*/
}
$user_data = $this->data;
/**
* Event to load language files and modify user data on every page
*
* @event core.user_setup
* @var array user_data Array with user's data row
* @var string user_lang_name Basename of the user's langauge
* @var string user_date_format User's date/time format
* @var string user_timezone User's timezone, should be one of
* http://www.php.net/manual/en/timezones.php
* @var mixed lang_set String or array of language files
* @var mixed style_id Style we are going to display
* @since 3.1-A1
*/
$vars = array('user_data', 'user_lang_name', 'user_date_format', 'user_timezone', 'lang_set', 'style_id');
extract($phpbb_dispatcher->trigger_event('core.user_setup', compact($vars)));
$this->data = $user_data;
$this->lang_name = $user_lang_name;
$this->date_format = $user_date_format;
try
{
$this->timezone = new DateTimeZone($user_timezone);