1 search.admin.inc | search_admin_settings_submit($form, &$form_state) |
Form submission handler for search_admin_settings().
File
- core/
modules/ search/ search.admin.inc, line 261 - Admin page callbacks for the Search module.
Code
function search_admin_settings_submit($form, &$form_state) {
$config = config('search.settings');
// If these settings change, the index needs to be rebuilt.
if (($config->get('search_minimum_word_size') != $form_state['values']['search_minimum_word_size']) || ($config->get('search_overlap_cjk') != $form_state['values']['search_overlap_cjk'])) {
$config->set('search_minimum_word_size', $form_state['values']['search_minimum_word_size']);
$config->set('search_overlap_cjk', $form_state['values']['search_overlap_cjk']);
backdrop_set_message(t('The index will be rebuilt.'));
search_reindex();
}
$config->set('search_cron_limit', $form_state['values']['search_cron_limit']);
$config->set('search_default_module', $form_state['values']['search_default_module']);
$config->set('search_logging', (bool) $form_state['values']['search_logging']);
$config->set('search_pager_type', $form_state['values']['search_pager_type']);
// Check whether we are resetting the values.
if ($form_state['triggering_element']['#value'] == t('Reset to defaults')) {
$new_modules = array('node', 'user');
}
else {
$new_modules = array_filter($form_state['values']['search_active_modules']);
}
if ($config->get('search_active_modules') != $new_modules) {
$config->set('search_active_modules', $new_modules);
backdrop_set_message(t('The active search modules have been changed.'));
state_set('menu_rebuild_needed', TRUE);
}
// Save all other settings provided by any other modules.
form_state_values_clean($form_state);
foreach ($form_state['values'] as $key => $value) {
if (strpos($key, 'search_') !== 0) {
$config->set($key, $value);
}
}
$config->save();
backdrop_set_message(t('The configuration options have been saved.'));
}