diff --git a/core/modules/search/lib/Drupal/search/Form/SearchSettingsForm.php b/core/modules/search/lib/Drupal/search/Form/SearchSettingsForm.php index 356de59..a7636dc 100644 --- a/core/modules/search/lib/Drupal/search/Form/SearchSettingsForm.php +++ b/core/modules/search/lib/Drupal/search/Form/SearchSettingsForm.php @@ -8,7 +8,6 @@ use Drupal\Component\Utility\NestedArray; use Drupal\Core\Config\ConfigFactory; -use Drupal\Core\Config\Context\ContextInterface; use Drupal\Core\Extension\ModuleHandler; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\KeyValueStore\KeyValueStoreInterface; @@ -110,7 +109,7 @@ protected function getModuleOptions() { * {@inheritdoc} */ public function buildForm(array $form, array &$form_state) { - $config = $this->configFactory->get('search.settings'); + // Collect some stats. $remaining = 0; $total = 0; @@ -147,7 +146,7 @@ public function buildForm(array $form, array &$form_state) { $form['indexing_throttle']['cron_limit'] = array( '#type' => 'select', '#title' => t('Number of items to index per cron run'), - '#default_value' => $config->get('index.cron_limit'), + '#default_value' => $this->searchSettings->get('index.cron_limit'), '#options' => $items, '#description' => t('The maximum number of items indexed in each pass of a cron maintenance task. If necessary, reduce the number of items to prevent timeouts and memory errors while indexing.', array('@cron' => url('admin/reports/status'))) ); @@ -162,7 +161,7 @@ public function buildForm(array $form, array &$form_state) { $form['indexing_settings']['minimum_word_size'] = array( '#type' => 'number', '#title' => t('Minimum word length to index'), - '#default_value' => $config->get('index.minimum_word_size'), + '#default_value' => $this->searchSettings->get('index.minimum_word_size'), '#min' => 1, '#max' => 1000, '#description' => t('The number of characters a word has to be to be indexed. A lower setting means better search result ranking, but also a larger database. Each search query must contain at least one keyword that is this size (or longer).') @@ -170,7 +169,7 @@ public function buildForm(array $form, array &$form_state) { $form['indexing_settings']['overlap_cjk'] = array( '#type' => 'checkbox', '#title' => t('Simple CJK handling'), - '#default_value' => $config->get('index.overlap_cjk'), + '#default_value' => $this->searchSettings->get('index.overlap_cjk'), '#description' => t('Whether to apply a simple Chinese/Japanese/Korean tokenizer based on overlapping sequences. Turn this off if you want to use an external preprocessor for this instead. Does not affect other languages.') ); @@ -183,19 +182,19 @@ public function buildForm(array $form, array &$form_state) { '#type' => 'checkboxes', '#title' => t('Active modules'), '#title_display' => 'invisible', - '#default_value' => $config->get('active_modules'), + '#default_value' => $this->searchSettings->get('active_modules'), '#options' => $module_options, '#description' => t('Choose which search modules are active from the available modules.') ); $form['active']['default_module'] = array( '#title' => t('Default search module'), '#type' => 'radios', - '#default_value' => $config->get('default_module'), + '#default_value' => $this->searchSettings->get('default_module'), '#options' => $module_options, '#description' => t('Choose which search module is the default.') ); - // Per module plugin settings + // Per module plugin settings. foreach ($active_plugins as $plugin) { $plugin->addToAdminForm($form, $form_state); } @@ -227,17 +226,16 @@ public function validateForm(array &$form, array &$form_state) { */ public function submitForm(array &$form, array &$form_state) { parent::submitForm($form, $form_state); - $config = $this->configFactory->get('search.settings'); // If these settings change, the index needs to be rebuilt. - if (($config->get('index.minimum_word_size') != $form_state['values']['minimum_word_size']) || ($config->get('index.overlap_cjk') != $form_state['values']['overlap_cjk'])) { - $config->set('index.minimum_word_size', $form_state['values']['minimum_word_size']); - $config->set('index.overlap_cjk', $form_state['values']['overlap_cjk']); + if (($this->searchSettings->get('index.minimum_word_size') != $form_state['values']['minimum_word_size']) || ($this->searchSettings->get('index.overlap_cjk') != $form_state['values']['overlap_cjk'])) { + $this->searchSettings->set('index.minimum_word_size', $form_state['values']['minimum_word_size']); + $this->searchSettings->set('index.overlap_cjk', $form_state['values']['overlap_cjk']); drupal_set_message(t('The index will be rebuilt.')); search_reindex(); } - $config->set('index.cron_limit', $form_state['values']['cron_limit']); - $config->set('default_module', $form_state['values']['default_module']); + $this->searchSettings->set('index.cron_limit', $form_state['values']['cron_limit']); + $this->searchSettings->set('default_module', $form_state['values']['default_module']); // Handle per-plugin submission logic. foreach ($this->searchPluginManager->getActivePlugins() as $plugin) { @@ -251,12 +249,12 @@ public function submitForm(array &$form, array &$form_state) { else { $new_modules = array_filter($form_state['values']['active_modules']); } - if ($config->get('active_modules') != $new_modules) { - $config->set('active_modules', $new_modules); + if ($this->searchSettings->get('active_modules') != $new_modules) { + $this->searchSettings->set('active_modules', $new_modules); drupal_set_message(t('The active search modules have been changed.')); $this->state->set('menu_rebuild_needed', TRUE); } - $config->save(); + $this->searchSettings->save(); } /**