You are here

public function LostCharacterCaptchaSettingsForm::buildForm in CAPTCHA Pack 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

text_captcha/modules/lost_character_captcha/src/Form/LostCharacterCaptchaSettingsForm.php, line 40

Class

LostCharacterCaptchaSettingsForm
Function for the settings form.

Namespace

Drupal\lost_character_captcha\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('lost_character_captcha.settings');
  $form = [];

  // Form element for the number of characters to lose.
  $form['lost_character_captcha_quantity'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Number of characters to lose'),
    '#default_value' => $config
      ->get('lost_character_captcha_quantity'),
    '#description' => $this
      ->t('Select how many characters should be lost in the CAPTCHA.'),
    '#options' => array_combine([
      1,
      2,
      3,
    ], [
      1,
      2,
      3,
    ]),
  ];

  // Form element for hinting.
  $form['lost_character_captcha_enable_hint'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Put "%hinter" where the characters are lost as a hint', [
      '%hinter' => LOST_CHARACTER_CAPTCHA_HINTER,
    ]),
    '#default_value' => $config
      ->get('lost_character_captcha_enable_hint'),
    '#description' => $this
      ->t('Enable this option to make it easier to determine the lost characters.'),
  ];

  // Form elements for the word pool.
  _text_captcha_word_pool_form_items($form, 'lost_character_captcha_word_pool', 'Word pool', 'Enter the words to use, separated with spaces. Make sure every word is unambiguously recognizable when characters are lost. Avoid for example verbs, adverbs, plural forms, too short words, names. Also make sure the words are well known to your intended public.', LOST_CHARACTER_CAPTCHA_DEFAULT_WORD_POOL);
  return parent::buildForm($form, $form_state);
}