function botcha_admin_settings in BOTCHA Spam Prevention 6.2
Same name and namespace in other branches
- 6 botcha.pages.inc \botcha_admin_settings()
- 7 botcha.pages.inc \botcha_admin_settings()
- 7.2 botcha.admin.inc \botcha_admin_settings()
1 string reference to 'botcha_admin_settings'
- botcha_menu in ./
botcha.module - Implements hook_menu().
File
- ./
botcha.admin.inc, line 18 - Implementation of botcha administration forms.
Code
function botcha_admin_settings(&$form_state) {
// We can't use system_settings_form() here because it will put all extra stuff into variables, that we want to avoid.
$form = array();
$form['botcha_secret'] = array(
'#type' => 'textfield',
'#title' => t('Secret key'),
'#default_value' => variable_get('botcha_secret', botcha_generate_secret_key()),
'#description' => t('It is recommended to enter some random text into the secret key. This setting makes your site\'s BOTCHA challenges unique and harder to break.') . '<br />' . t('If you leave this field empty and save configuration, a new random key will be generated for you.'),
);
// BOTCHA Statistics & Logging
$form['botcha_statistics'] = array(
'#type' => 'fieldset',
'#title' => t('Statistics & logging'),
'#description' => t('BOTCHA collects statistics of form submissions and it can report different events into the system log.'),
);
$dblog_link = l(t('log'), 'admin/reports/dblog');
$form['botcha_statistics']['botcha_loglevel'] = array(
'#type' => 'select',
'#title' => t('Log level'),
'#default_value' => variable_get('botcha_loglevel', BOTCHA_LOGLEVEL),
'#options' => array(
0 => t('0: no log'),
1 => t('1: blocked/bad submissions only'),
2 => t('2: ... and why blocked'),
3 => t('3: ... and good submissions'),
4 => t('4: ... and protected forms'),
5 => t('5: ... and extra submission details'),
6 => t('6: ... and misc development items'),
),
'#description' => t('Select what information to report into the !log.', array(
'!log' => $dblog_link,
)),
);
// Button for resetting the BOTCHA statistics.
$form['botcha_statistics']['botcha_statistics_group'] = array(
'#type' => 'item',
'#title' => t('BOTCHA statistics'),
'#description' => t('Reset all accumulated statistics of form submissions.'),
);
// Handle the button for resetting the BOTCHA statistics.
// This is done here instead of in a submit handler because the button is
// not a submitting button.
$form['botcha_statistics']['botcha_statistics_group']['botcha_statistics_reset'] = array(
'#type' => 'button',
'#value' => t('Reset BOTCHA statistics'),
'#submit' => array(
'botcha_statistics_reset',
),
// Pull it down.
'#weight' => 100,
);
if (isset($form_state['post']['op']) && $form_state['post']['op'] == $form['botcha_statistics']['botcha_statistics_group']['botcha_statistics_reset']['#value']) {
variable_set('botcha_form_passed_counter', 0);
variable_set('botcha_form_blocked_counter', 0);
drupal_set_message(t('BOTCHA statistics have been reset.'));
}
// Show statistic counters.
$block_cnt = variable_get('botcha_form_blocked_counter', 0);
$build_cnt = variable_get('botcha_form_passed_counter', 0) + $block_cnt;
$form['botcha_statistics']['botcha_statistics_group']['botcha_statistics'] = array(
'#type' => 'item',
'#value' => format_plural($block_cnt, 'Already 1 blocked form submission.', 'Already @count blocked form submissions.') . ($build_cnt > 0 ? ' ' . t('(!percent% of total !build_cnt processed)', array(
'!percent' => sprintf("%0.3f", 100 * $block_cnt / $build_cnt),
'!build_cnt' => $build_cnt,
)) : ''),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save configuration'),
);
$form['#theme'] = 'system_settings_form';
return $form;
}