|
|
|
@ -2,6 +2,7 @@ |
|
|
|
|
/* For licensing terms, see /license.txt */ |
|
|
|
|
|
|
|
|
|
use Patchwork\Utf8; |
|
|
|
|
use ChamiloSession as Session; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* File: internationalization.lib.php |
|
|
|
@ -386,30 +387,33 @@ function api_get_timezones() |
|
|
|
|
*/ |
|
|
|
|
function api_get_timezone() |
|
|
|
|
{ |
|
|
|
|
// First, get the default timezone of the server |
|
|
|
|
$to_timezone = date_default_timezone_get(); |
|
|
|
|
// Second, see if a timezone has been chosen for the platform |
|
|
|
|
$timezone_value = api_get_setting('timezone_value', 'timezones'); |
|
|
|
|
$timezone = Session::read('system_timezone'); |
|
|
|
|
if (empty($timezone)) { |
|
|
|
|
// First, get the default timezone of the server |
|
|
|
|
$timezone = date_default_timezone_get(); |
|
|
|
|
// Second, see if a timezone has been chosen for the platform |
|
|
|
|
$timezoneFromSettings = api_get_setting('timezone_value', 'timezones'); |
|
|
|
|
|
|
|
|
|
if ($timezone_value != null) { |
|
|
|
|
$to_timezone = $timezone_value; |
|
|
|
|
} |
|
|
|
|
// If allowed by the administrator |
|
|
|
|
$use_users_timezone = api_get_setting('use_users_timezone', 'timezones'); |
|
|
|
|
if ($timezoneFromSettings != null) { |
|
|
|
|
$timezone = $timezoneFromSettings; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($use_users_timezone === 'true') { |
|
|
|
|
$userId = api_get_user_id(); |
|
|
|
|
// Get the timezone based on user preference, if it exists |
|
|
|
|
$timezone_user = UserManager::get_extra_user_data_by_field( |
|
|
|
|
$userId, |
|
|
|
|
'timezone' |
|
|
|
|
); |
|
|
|
|
if (isset($timezone_user['timezone']) && $timezone_user['timezone'] != null) { |
|
|
|
|
$to_timezone = $timezone_user['timezone']; |
|
|
|
|
// If allowed by the administrator |
|
|
|
|
$allowUserTimezones = api_get_setting('use_users_timezone', 'timezones'); |
|
|
|
|
|
|
|
|
|
if ($allowUserTimezones === 'true') { |
|
|
|
|
$userId = api_get_user_id(); |
|
|
|
|
// Get the timezone based on user preference, if it exists |
|
|
|
|
$newExtraField = new ExtraFieldValue('user'); |
|
|
|
|
$data = $newExtraField->get_values_by_handler_and_field_variable($userId, 'timezone'); |
|
|
|
|
if (!empty($data) && isset($data['timezone']) && !empty($data['timezone'])) { |
|
|
|
|
$timezone = $data['timezone']; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Session::write('system_timezone', $timezone); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $to_timezone; |
|
|
|
|
return $timezone; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|