You are here

function readonlymode_form_system_site_maintenance_mode_alter in Read only mode 2.0.x

Same name and namespace in other branches
  1. 8 readonlymode.module \readonlymode_form_system_site_maintenance_mode_alter()
  2. 7 readonlymode.module \readonlymode_form_system_site_maintenance_mode_alter()

Implements hook_form_FORM_ID_alter().

File

./readonlymode.module, line 33
The readonlymode module file.

Code

function readonlymode_form_system_site_maintenance_mode_alter(&$form, FormStateInterface $form_state) {

  /** @var \Drupal\readonlymode\ReadonlymodeManager $manager */
  $manager = \Drupal::service('readonlymode.manager');

  // Get editable settings.
  $settings = \Drupal::configFactory()
    ->getEditable('readonlymode.settings');
  $form['read_only'] = [
    '#title' => t('Read Only Mode'),
    '#type' => 'details',
    '#weight' => 1,
    '#open' => TRUE,
  ];
  $form['read_only']['enable_readonly'] = [
    '#type' => 'checkbox',
    '#title' => t('Enable "Read Only" mode'),
    '#description' => t('When set to "Read Only", all content moderation (add/edit) will be impossible.'),
    '#weight' => 0,
    '#default_value' => $manager
      ->isReadonly(),
  ];

  // Message configuration is in a collapsed fieldset
  // so that it doesn't clutter the display.
  $form['read_only']['settings'] = [
    '#title' => t('Messages and redirects'),
    '#type' => 'details',
    '#description' => t('Configure the redirect URL and messages to display to users while the site is in Read Only Mode.'),
  ];
  $form['read_only']['settings']['default_message'] = [
    '#type' => 'textarea',
    '#title' => t('Read Only Mode warning'),
    '#description' => t('This warning will be displayed to users with the appropriate permission while in Read Only Mode.'),
    '#default_value' => $settings
      ->get('messages.default'),
    '#rows' => 3,
    '#required' => TRUE,
  ];
  $form['read_only']['settings']['not_saved_message'] = [
    '#type' => 'textarea',
    '#title' => t('Form submission error'),
    '#description' => t('This error will be displayed when a entity is edited or created while in Read Only Mode. This scenario occurs when a user ignores the warning or starts filling out a form during normal site operation and then attempts to submit the form after Read Only Mode has been enabled.'),
    '#default_value' => $settings
      ->get('messages.not_saved'),
    '#rows' => 3,
    '#required' => TRUE,
  ];
  $form['#submit'][] = 'readonlymode_settings_form_submit';
}