public function SearchLogConfigurationForm::buildForm in Search Log 8
.
Overrides ConfigFormBase::buildForm
File
- src/
Form/ SearchLogConfigurationForm.php, line 71
Class
Namespace
Drupal\search_log\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('search_log.settings');
$form['logging'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Search log settings'),
];
$terms_options = [
'search_log_terms_lowercase' => $this
->t('lowercase (%1 stored as %2)', [
'%1' => 'Apple iPod',
'%2' => 'apple ipod',
]),
'search_log_terms_uppercase_first' => $this
->t('uppercase first word (%1 stored as %2)', [
'%1' => 'Apple iPod',
'%2' => 'Apple ipod',
]),
'search_log_terms_uppercase_words' => $this
->t('uppercase all words (%1 stored as %2)', [
'%1' => 'Apple iPod',
'%2' => 'Apple Ipod',
]),
];
$form['logging']['search_log_terms'] = [
'#type' => 'radios',
'#title' => $this
->t('Search term normalization'),
'#description' => $this
->t('Search terms are normalized before they are stored in Search log. Changing this value may result in duplicate terms for the current day.'),
'#options' => $terms_options,
'#default_value' => $config
->get('search_log_terms'),
];
$form['logging']['search_log_preprocess'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Collect search result with preprocess_search_results()'),
'#description' => $this
->t('Search does not have a hook to obtain the number of search results. This theme function will work in certain circumstances. If enabled, the function will add one extra DB write for failed search results.'),
'#default_value' => $config
->get('search_log_preprocess'),
];
$form['status'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Search log status'),
];
$query = $this->database
->select('search_log', 'sl')
->fields('sl', [
'qid',
]);
$results = $query
->execute()
->fetchAll();
$num_of_results = count($results);
$form['status']['search_log_count']['#markup'] = '<p>' . $this
->t('There are :count entries in the Search log table.', [
':count' => number_format($num_of_results),
]) . '</p>';
$form['status']['search_log_cron'] = [
'#type' => 'textfield',
'#title' => $this
->t('Days to keep search log'),
'#description' => $this
->t('Search log table can be automatically truncated by cron. Set to 0 to never truncate Search log table.'),
'#size' => 4,
'#default_value' => $config
->get('search_log_cron'),
];
return parent::buildForm($form, $form_state);
}