function UserHooks::formSystemRegionalSettingsAlter

Implements hook_form_FORM_ID_alter() for \Drupal\system\Form\RegionalForm.

Attributes

#[Hook('form_system_regional_settings_alter')]

File

core/modules/user/src/Hook/UserHooks.php, line 442

Class

UserHooks
Hook implementations for user.

Namespace

Drupal\user\Hook

Code

public function formSystemRegionalSettingsAlter(&$form, FormStateInterface $form_state) : void {
  $config = \Drupal::config('system.date');
  $form['timezone']['configurable_timezones'] = [
    '#type' => 'checkbox',
    '#title' => $this->t('Users may set their own time zone'),
    '#default_value' => $config->get('timezone.user.configurable'),
  ];
  $form['timezone']['configurable_timezones_wrapper'] = [
    '#type' => 'container',
    '#states' => [
      // Hide the user configured timezone settings when users are forced to
      // use the default setting.
'invisible' => [
        'input[name="configurable_timezones"]' => [
          'checked' => FALSE,
        ],
      ],
    ],
  ];
  $form['timezone']['configurable_timezones_wrapper']['empty_timezone_message'] = [
    '#type' => 'checkbox',
    '#title' => $this->t('Remind users at login if their time zone is not set'),
    '#default_value' => $config->get('timezone.user.warn'),
    '#description' => $this->t('Only applied if users may set their own time zone.'),
  ];
  $form['timezone']['configurable_timezones_wrapper']['user_default_timezone'] = [
    '#type' => 'radios',
    '#title' => $this->t('Time zone for new users'),
    '#default_value' => $config->get('timezone.user.default'),
    '#options' => [
      UserInterface::TIMEZONE_DEFAULT => $this->t('Default time zone'),
      UserInterface::TIMEZONE_EMPTY => $this->t('Empty time zone'),
      UserInterface::TIMEZONE_SELECT => $this->t('Users may set their own time zone at registration'),
    ],
    '#description' => $this->t('Only applied if users may set their own time zone.'),
  ];
  $form['#submit'][] = 'user_form_system_regional_settings_submit';
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.