You are here

public function SCNSettingsForm::buildForm in Simple Comment Notify 8

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

src/Form/SCNSettingsForm.php, line 32

Class

SCNSettingsForm
Defines a form that configures forms module settings.

Namespace

Drupal\scn\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('scn.settings');
  $roles = $config
    ->get('scn_roles');
  $form = [];
  $form['fieldset'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Send mail to'),
  ];
  $form['fieldset']['scn_admin'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('admin'),
    '#default_value' => $config
      ->get('scn_admin'),
    '#description' => $this
      ->t('Send mail to user with uid=1'),
  ];
  $form['fieldset']['scn_roles'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Roles'),
    '#default_value' => !empty($roles) ? $roles : [],
    '#options' => array_map('\\Drupal\\Component\\Utility\\Html::escape', user_role_names(TRUE)),
    '#description' => $this
      ->t('Send mail to users with selected roles'),
  ];
  $form['fieldset']['scn_maillist'] = [
    '#type' => 'textarea',
    '#title' => $this
      ->t('Custom mail list'),
    '#default_value' => $config
      ->get('scn_maillist'),
    '#description' => $this
      ->t('Send mail to non-registered users. Delimiter: comma'),
  ];
  $form['fieldset']['scn_telegram'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Send message to Telegram users'),
    '#default_value' => $config
      ->get('scn_telegram'),
  ];
  $form['fieldset']['scn_telegram_fieldset'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Telegram Settings'),
    '#states' => [
      'visible' => [
        '#edit-scn-telegram' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_bottoken'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Bot token'),
    '#default_value' => $config
      ->get('scn_telegram_bottoken'),
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_chatids'] = [
    '#type' => 'textarea',
    '#title' => $this
      ->t('Chat IDs'),
    '#default_value' => $config
      ->get('scn_telegram_chatids'),
    '#description' => $this
      ->t('Delimiter: comma'),
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_proxy'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Use proxy'),
    '#default_value' => $config
      ->get('scn_telegram_proxy'),
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_proxy_fieldset'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Proxy Settings (SOCKS 5)'),
    '#states' => [
      'visible' => [
        '#edit-scn-telegram-proxy' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_proxy_fieldset']['scn_telegram_proxy_server'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Server name or IP address'),
    '#default_value' => $config
      ->get('scn_telegram_proxy_server'),
    '#description' => $this
      ->t('For example: 127.0.0.1:1234'),
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_proxy_fieldset']['scn_telegram_proxy_login'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Server login'),
    '#default_value' => $config
      ->get('scn_telegram_proxy_login'),
  ];
  $form['fieldset']['scn_telegram_fieldset']['scn_telegram_proxy_fieldset']['scn_telegram_proxy_password'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Server password'),
    '#default_value' => $config
      ->get('scn_telegram_proxy_password'),
  ];
  return parent::buildForm($form, $form_state);
}