diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 49cf8e4..c380c45 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2190,13 +2190,15 @@ function drupal_bootstrap($phase = NULL, $new_phase = TRUE) {
*/
function drupal_get_user_timezone() {
global $user;
- if (variable_get('configurable_timezones', 1) && $user->uid && $user->timezone) {
+ $config = config('system.regional');
+ if ($config->get('configurable_timezones') && $user->uid && $user->timezone) {
return $user->timezone;
}
else {
// Ignore PHP strict notice if time zone has not yet been set in the php.ini
// configuration.
- return variable_get('date_default_timezone', @date_default_timezone_get());
+ $config_data_default_timezone = $config->get('date_default_timezone');
+ return isset($config_data_default_timezone) ? $config_data_default_timezone : @date_default_timezone_get();
}
}
diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index eb9dff9..8fefbfb 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -1859,7 +1859,7 @@ function _install_configure_form($form, &$form_state, &$install_state) {
'#type' => 'select',
'#title' => st('Default country'),
'#empty_value' => '',
- '#default_value' => variable_get('site_default_country', NULL),
+ '#default_value' => config('system.regional')->get('site_default_country'),
'#options' => $countries,
'#description' => st('Select the default country for the site.'),
'#weight' => 0,
@@ -1916,10 +1916,13 @@ function install_configure_form_validate($form, &$form_state) {
function install_configure_form_submit($form, &$form_state) {
global $user;
+
variable_set('site_name', $form_state['values']['site_name']);
variable_set('site_mail', $form_state['values']['site_mail']);
- variable_set('date_default_timezone', $form_state['values']['date_default_timezone']);
- variable_set('site_default_country', $form_state['values']['site_default_country']);
+ config('system.regional')
+ ->set('date_default_timezone', $form_state['values']['date_default_timezone'])
+ ->set('site_default_country', $form_state['values']['site_default_country'])
+ ->save();
// Enable update.module if this option was selected.
if ($form_state['values']['update_status_module'][1]) {
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 7ce8a2f..2ca9f6e 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -660,7 +660,7 @@ function locale_library_info_alter(&$libraries, $module) {
'ui' => array(
'datepicker' => array(
'isRTL' => $language_interface->direction == LANGUAGE_RTL,
- 'firstDay' => variable_get('date_first_day', 0),
+ 'firstDay' => config('system.regional')->get('date_first_day'),
),
),
),
diff --git a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
index a143d34..c99a56f 100644
--- a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
+++ b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
@@ -30,8 +30,11 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
*/
function testRegisterUserWithEmailVerification() {
variable_set('user_email_verification', TRUE);
- variable_get('configurable_timezones', 1);
- variable_set('date_default_timezone', 'Europe/Brussels');
+
+ config('system.regional')
+ ->set('configurable_timezones', 1)
+ ->set('date_default_timezone', 'Europe/Brussels')
+ ->save();
// Tell openid_test.module to respond with these SREG fields.
variable_set('openid_test_response', array(
@@ -87,8 +90,11 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
*/
function testRegisterUserWithoutEmailVerification() {
variable_set('user_email_verification', FALSE);
- variable_get('configurable_timezones', 1);
- variable_set('date_default_timezone', 'Europe/Brussels');
+
+ config('system.regional')
+ ->set('configurable_timezones', 1)
+ ->set('date_default_timezone', 'Europe/Brussels')
+ ->save();
// Tell openid_test.module to respond with these SREG fields.
variable_set('openid_test_response', array(
@@ -128,8 +134,10 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
* information (a username that is already taken, and no e-mail address).
*/
function testRegisterUserWithInvalidSreg() {
- variable_get('configurable_timezones', 1);
- variable_set('date_default_timezone', 'Europe/Brussels');
+ config('system.regional')
+ ->set('configurable_timezones', 1)
+ ->set('date_default_timezone', 'Europe/Brussels')
+ ->save();
// Tell openid_test.module to respond with these SREG fields.
$web_user = $this->drupalCreateUser(array());
@@ -219,7 +227,9 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
*/
function testRegisterUserWithAXButNoSREG() {
variable_set('user_email_verification', FALSE);
- variable_set('date_default_timezone', 'Europe/Brussels');
+ config('system.regional')
+ ->set('date_default_timezone', 'Europe/Brussels')
+ ->save();
// Tell openid_test.module to respond with these AX fields.
variable_set('openid_test_response', array(
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
index 3384e2c..cf6b619 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
@@ -664,7 +664,7 @@ abstract class WebTestBase extends TestBase {
// Restore necessary variables.
variable_set('install_task', 'done');
variable_set('site_mail', 'simpletest@example.com');
- variable_set('date_default_timezone', date_default_timezone_get());
+ config('system.regional')->set('date_default_timezone', date_default_timezone_get())->save();
// Set up English language.
unset($conf['language_default']);
diff --git a/core/modules/system/config/system.regional.yml b/core/modules/system/config/system.regional.yml
new file mode 100644
index 0000000..facd00d
--- /dev/null
+++ b/core/modules/system/config/system.regional.yml
@@ -0,0 +1,6 @@
+site_default_country: ''
+date_first_day: '0'
+date_default_timezone: ''
+configurable_timezones: '1'
+empty_timezone_message: '0'
+user_default_timezone: '0'
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
index 7a71d33..693776f 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
@@ -29,7 +29,7 @@ class FormatDateTest extends WebTestBase {
function setUp() {
parent::setUp('language');
- variable_set('configurable_timezones', 1);
+ config('system.regional')->set('configurable_timezones', 1)->save();
variable_set('date_format_long', 'l, j. F Y - G:i');
variable_set('date_format_medium', 'j. F Y - G:i');
variable_set('date_format_short', 'Y M j - g:ia');
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
index 84bd7c6..fecb573 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
@@ -35,8 +35,11 @@ class DateTimeTest extends WebTestBase {
*/
function testTimeZoneHandling() {
// Setup date/time settings for Honolulu time.
- variable_set('date_default_timezone', 'Pacific/Honolulu');
- variable_set('configurable_timezones', 0);
+ $config = config('system.regional');
+ $config
+ ->set('date_default_timezone', 'Pacific/Honolulu')
+ ->set('configurable_timezones', 0)
+ ->save();
variable_set('date_format_medium', 'Y-m-d H:i:s O');
// Create some nodes with different authored-on dates.
@@ -52,7 +55,7 @@ class DateTimeTest extends WebTestBase {
$this->assertText('2007-07-31 21:00:00 -1000', t('Date should be identical, with GMT offset of -10 hours.'));
// Set time zone to Los Angeles time.
- variable_set('date_default_timezone', 'America/Los_Angeles');
+ $config->set('date_default_timezone', 'America/Los_Angeles')->save();
// Confirm date format and time zone.
$this->drupalGet("node/$node1->nid");
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index f34c766..5ebccf5 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -1939,6 +1939,7 @@ function system_rss_feeds_settings_submit($form, &$form_state) {
*/
function system_regional_settings() {
$countries = country_get_list();
+ $config = config('system.regional');
// Date settings:
$zones = system_time_zones();
@@ -1952,7 +1953,7 @@ function system_regional_settings() {
'#type' => 'select',
'#title' => t('Default country'),
'#empty_value' => '',
- '#default_value' => variable_get('site_default_country', ''),
+ '#default_value' => $config->get('site_default_country'),
'#options' => $countries,
'#attributes' => array('class' => array('country-detect')),
);
@@ -1960,7 +1961,7 @@ function system_regional_settings() {
$form['locale']['date_first_day'] = array(
'#type' => 'select',
'#title' => t('First day of week'),
- '#default_value' => variable_get('date_first_day', 0),
+ '#default_value' => $config->get('date_first_day'),
'#options' => array(0 => t('Sunday'), 1 => t('Monday'), 2 => t('Tuesday'), 3 => t('Wednesday'), 4 => t('Thursday'), 5 => t('Friday'), 6 => t('Saturday')),
);
@@ -1969,14 +1970,15 @@ function system_regional_settings() {
'#title' => t('Time zones'),
);
+ $date_default_timezone = $config->get('date_default_timezone');
$form['timezone']['date_default_timezone'] = array(
'#type' => 'select',
'#title' => t('Default time zone'),
- '#default_value' => variable_get('date_default_timezone', date_default_timezone_get()),
+ '#default_value' => isset($date_default_timezone) ? $date_default_timezone : date_default_timezone_get(),
'#options' => $zones,
);
- $configurable_timezones = variable_get('configurable_timezones', 1);
+ $configurable_timezones = $config->get('configurable_timezones');
$form['timezone']['configurable_timezones'] = array(
'#type' => 'checkbox',
'#title' => t('Users may set their own time zone.'),
@@ -1996,14 +1998,14 @@ function system_regional_settings() {
$form['timezone']['configurable_timezones_wrapper']['empty_timezone_message'] = array(
'#type' => 'checkbox',
'#title' => t('Remind users at login if their time zone is not set.'),
- '#default_value' => variable_get('empty_timezone_message', 0),
+ '#default_value' => $config->get('empty_timezone_message'),
'#description' => t('Only applied if users may set their own time zone.')
);
$form['timezone']['configurable_timezones_wrapper']['user_default_timezone'] = array(
'#type' => 'radios',
'#title' => t('Time zone for new users'),
- '#default_value' => variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT),
+ '#default_value' => $config->get('user_default_timezone'),
'#options' => array(
DRUPAL_USER_TIMEZONE_DEFAULT => t('Default time zone.'),
DRUPAL_USER_TIMEZONE_EMPTY => t('Empty time zone.'),
@@ -2012,10 +2014,29 @@ function system_regional_settings() {
'#description' => t('Only applied if users may set their own time zone.')
);
+ $form['#submit'][] = 'system_regional_settings_submit';
+
return system_settings_form($form);
}
/**
+ * Form builder submit handler; Handle submission for regional settings.
+ *
+ * @ingroup forms
+ * @see system_settings_form()
+ */
+function system_regional_settings_submit($form, &$form_state) {
+ config('system.regional')
+ ->set('site_default_country', $form_state['values']['site_default_country'])
+ ->set('date_first_day', $form_state['values']['date_first_day'])
+ ->set('date_default_timezone', $form_state['values']['date_default_timezone'])
+ ->set('configurable_timezones', $form_state['values']['configurable_timezones'])
+ ->set('empty_timezone_message', $form_state['values']['empty_timezone_message'])
+ ->set('user_default_timezone', $form_state['values']['user_default_timezone'])
+ ->save();
+}
+
+/**
* Form builder; Configure the site date and time settings.
*
* @ingroup forms
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 73236f7..926c3d0 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -2038,7 +2038,7 @@ function system_custom_theme() {
* Implements hook_form_FORM_ID_alter().
*/
function system_form_user_profile_form_alter(&$form, &$form_state) {
- if (variable_get('configurable_timezones', 1)) {
+ if (config('system.regional')->get('configurable_timezones')) {
system_user_timezone($form, $form_state);
}
return $form;
@@ -2048,7 +2048,8 @@ function system_form_user_profile_form_alter(&$form, &$form_state) {
* Implements hook_form_FORM_ID_alter().
*/
function system_form_user_register_form_alter(&$form, &$form_state) {
- if (variable_get('configurable_timezones', 1) && variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT) == DRUPAL_USER_TIMEZONE_SELECT) {
+ $config = config('system.regional');
+ if ($config->get('configurable_timezones') && $config->get('user_default_timezone') == DRUPAL_USER_TIMEZONE_SELECT) {
system_user_timezone($form, $form_state);
return $form;
}
@@ -2058,8 +2059,9 @@ function system_form_user_register_form_alter(&$form, &$form_state) {
* Implements hook_user_presave().
*/
function system_user_presave($account) {
- if (variable_get('configurable_timezones', 1) && empty($account->timezone) && !variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT)) {
- $account->timezone = variable_get('date_default_timezone', '');
+ $config = config('system.regional');
+ if ($config->get('configurable_timezones') && empty($account->timezone) && !$config->get('user_default_timezone')) {
+ $account->timezone = $config->get('date_default_timezone');
}
}
@@ -2067,8 +2069,9 @@ function system_user_presave($account) {
* Implements hook_user_login().
*/
function system_user_login(&$edit, $account) {
+ $config = config('system.regional');
// If the user has a NULL time zone, notify them to set a time zone.
- if (!$account->timezone && variable_get('configurable_timezones', 1) && variable_get('empty_timezone_message', 0)) {
+ if (!$account->timezone && $config->get('configurable_timezones') && $config->get('empty_timezone_message')) {
drupal_set_message(t('Configure your account time zone setting.', array('@user-edit' => url("user/$account->uid/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
}
}
@@ -2089,7 +2092,7 @@ function system_user_timezone(&$form, &$form_state) {
$form['timezone']['timezone'] = array(
'#type' => 'select',
'#title' => t('Time zone'),
- '#default_value' => isset($account->timezone) ? $account->timezone : ($account->uid == $user->uid ? variable_get('date_default_timezone', '') : ''),
+ '#default_value' => isset($account->timezone) ? $account->timezone : ($account->uid == $user->uid ? config('system.regional')->get('date_default_timezone') : ''),
'#options' => system_time_zones($account->uid != $user->uid),
'#description' => t('Select the desired local time and time zone. Dates and times throughout this site will be displayed using this time zone.'),
);
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index 56ad9a0..1c70ee6 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -145,8 +145,11 @@ class UserRegistrationTest extends WebTestBase {
variable_set('user_email_verification', FALSE);
// Set the default timezone to Brussels.
- variable_set('configurable_timezones', 1);
- variable_set('date_default_timezone', 'Europe/Brussels');
+ $config = config('system.regional');
+ $config
+ ->set('configurable_timezones', 1)
+ ->set('date_default_timezone', 'Europe/Brussels')
+ ->save();
// Check that the account information fieldset's options are not displayed
// is a fieldset if there is not more than one fieldset in the form.
@@ -169,7 +172,7 @@ class UserRegistrationTest extends WebTestBase {
$this->assertEqual($new_user->signature, '', t('Correct signature field.'));
$this->assertTrue(($new_user->created > REQUEST_TIME - 20 ), t('Correct creation time.'));
$this->assertEqual($new_user->status, variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL) == USER_REGISTER_VISITORS ? 1 : 0, t('Correct status field.'));
- $this->assertEqual($new_user->timezone, variable_get('date_default_timezone'), t('Correct time zone field.'));
+ $this->assertEqual($new_user->timezone, config('system.regional')->get('date_default_timezone'), t('Correct time zone field.'));
$this->assertEqual($new_user->langcode, language_default()->langcode, t('Correct language field.'));
$this->assertEqual($new_user->preferred_langcode, language_default()->langcode, t('Correct preferred language field.'));
$this->assertEqual($new_user->picture, 0, t('Correct picture field.'));
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php b/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
index 3ff4daf..c1c7340 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
@@ -26,8 +26,11 @@ class UserTimeZoneTest extends WebTestBase {
*/
function testUserTimeZone() {
// Setup date/time settings for Los Angeles time.
- variable_set('date_default_timezone', 'America/Los_Angeles');
- variable_set('configurable_timezones', 1);
+ $config = config('system.regional');
+ $config
+ ->set('configurable_timezones', 1)
+ ->set('date_default_timezone', 'America/Los_Angeles')
+ ->save();
variable_set('date_format_medium', 'Y-m-d H:i T');
// Create a user account and login.
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index 8c7286e..3d6f564 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -295,8 +295,9 @@ function hook_user_update($account) {
* The user object on which the operation was just performed.
*/
function hook_user_login(&$edit, $account) {
+ $config = config('system.regional');
// If the user has a NULL time zone, notify them to set a time zone.
- if (!$account->timezone && variable_get('configurable_timezones', 1) && variable_get('empty_timezone_message', 0)) {
+ if (!$account->timezone && $config->get('configurable_timezones') && $config->get('empty_timezone_message')) {
drupal_set_message(t('Configure your account time zone setting.', array('@user-edit' => url("user/$account->uid/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
}
}