You are here

function search_by_page_admin_settings_submit in Search by Page 8

Same name and namespace in other branches
  1. 6 search_by_page.module \search_by_page_admin_settings_submit()
  2. 7 search_by_page.module \search_by_page_admin_settings_submit()

Submit handler for search_by_page_admin_settings().

1 string reference to 'search_by_page_admin_settings_submit'
search_by_page_admin_settings in ./search_by_page.module
Returns the admin settings page for a single search environment.

File

./search_by_page.module, line 1262
Main module file for Drupal module Search by Page.

Code

function search_by_page_admin_settings_submit($form, &$form_state) {

  // This basically follows system_settings_form_submit().
  $form_state['redirect'] = 'admin/config/search/search_by_page';
  $environment = intval($form_state['values']['environment']);
  $skip = [
    'submit',
    'form_id',
    'form_token',
    'form_build_id',
    'environment',
    'set_as_default',
  ];

  // Special case: results per page, make sure it's an integer. Could do
  // this in validation, but...
  $num = intval($form_state['values']['results_per_page']);
  if ($num < 1) {
    $num = 10;
  }
  $form_state['values']['results_per_page'] = $num;
  foreach ($form_state['values'] as $key => $value) {
    if (!in_array($key, $skip)) {
      \Drupal::service('search_by_page.settings')
        ->setSetting($key, $environment, $value);
    }
  }
  if ($form_state['values']['set_as_default']) {
    \Drupal::state()
      ->set('search_by_page_default_environment', $environment);
  }

  // Make sure menu gets rebuilt, so our new/changed path works.
  // Also need to clear block cache.
  \Drupal::state()
    ->set('menu_rebuild_needed', TRUE);
  drupal_flush_all_caches();
  \Drupal::messenger()
    ->addMessage(t('The configuration options have been saved.'));
}