public function RateSettingsForm::buildForm in Rate 8.2
Same name and namespace in other branches
- 8 src/Form/RateSettingsForm.php \Drupal\rate\Form\RateSettingsForm::buildForm()
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/ RateSettingsForm.php, line 73
Class
- RateSettingsForm
- Configure rate settings for the site.
Namespace
Drupal\rate\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('rate.settings');
$form['settings'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Rate settings'),
'#collapsbile' => FALSE,
'#collapsed' => FALSE,
];
$form['settings']['disable_log'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Disable log messages'),
'#default_value' => $config
->get('disable_log'),
'#description' => $this
->t('This will disable log messages when voting in rate module.'),
];
$form['settings']['disable_fontawesome'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Disable fontawesome'),
'#default_value' => $config
->get('disable_fontawesome'),
'#description' => $this
->t('This will disable fontawesome library from loading with rate module.'),
];
$form['bot'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Bot detection'),
'#description' => $this
->t('Bots can be automatically banned from voting if they rate more than a given amount of votes within one minute or hour. This threshold is configurable below. Votes from the same IP-address will be ignored forever after reaching this limit.'),
'#collapsbile' => FALSE,
'#collapsed' => FALSE,
];
$threshold_options = array_combine([
0,
10,
25,
50,
100,
250,
500,
1000,
], [
0,
10,
25,
50,
100,
250,
500,
1000,
]);
$threshold_options[0] = $this
->t('disable');
$form['bot']['bot_minute_threshold'] = [
'#type' => 'select',
'#title' => $this
->t('1 minute threshold'),
'#options' => $threshold_options,
'#default_value' => $config
->get('bot_minute_threshold'),
];
$form['bot']['bot_hour_threshold'] = [
'#type' => 'select',
'#title' => $this
->t('1 hour threshold'),
'#options' => $threshold_options,
'#default_value' => $config
->get('bot_hour_threshold'),
];
$form['bot']['botscout_key'] = [
'#type' => 'textfield',
'#title' => $this
->t('BotScout.com API key'),
'#default_value' => $config
->get('botscout_key'),
'#description' => $this
->t('Rate will check the voters IP against the BotScout database if it has an API key. You can request a key at %url.', [
'%url' => 'http://botscout.com/getkey.htm',
]),
];
return parent::buildForm($form, $form_state);
}