You are here

function search_autocomplete_form_configure_submit in Search Autocomplete 6.4

Same name and namespace in other branches
  1. 6.2 search_autocomplete.form.configure.inc \search_autocomplete_form_configure_submit()
  2. 7.4 search_autocomplete.form.configure.inc \search_autocomplete_form_configure_submit()
  3. 7.2 search_autocomplete.form.configure.inc \search_autocomplete_form_configure_submit()
  4. 7.3 search_autocomplete.form.configure.inc \search_autocomplete_form_configure_submit()

Implementation of hook_submit(). Save the changes in the database

File

./search_autocomplete.form.configure.inc, line 220
Search Autocomplete Helper functions to retrive forms from database

Code

function search_autocomplete_form_configure_submit($form, &$form_state) {
  global $base_url;
  $ok_query = TRUE;

  // Get form submission values.
  $values = $form_state['values'];

  // Analyse incoming callback.
  $callback = $values['callback_textfield'];

  // Static resource => type = 2.
  $data_type = $values['suggestions'];
  if ($data_type == 1 && $callback != '') {

    // If path is absolute:
    if (menu_path_is_external($callback)) {

      // If path is internal:
      if (strcmp(substr($callback, 0, strlen($base_url)), $base_url) === 0) {

        // Get it relative.
        $callback = str_replace($base_url . "/", "", $callback);
        $data_type = 1;
      }
      else {
        $data_type = 0;
      }
    }
    else {
      $data_type = 1;
    }
  }
  if ($data_type = 3) {
    $callback = 'search_autocomplete/autocomplete/' . $values['fid'] . '/';
  }

  // ###.
  // UPDATE THE FORM.
  // -> update form.
  db_query('UPDATE {search_autocomplete_forms} SET min_char=%d, max_sug=%d, auto_submit=%d, auto_redirect=%d, no_results="%s", selector="%s", data_source=%d, data_callback="%s", data_static="%s", data_view="%s", theme="%s" WHERE fid=%d', array(
    $values['min_char'],
    $values['max_sug'],
    $values['auto_submit'],
    $values['auto_redirect'],
    $values['no_results'],
    $values['selector'],
    $data_type,
    $callback,
    $values['staticresource_textfield'],
    $values['view_textfield'],
    $values['theme'],
    $values['fid'],
  ));

  // ###
  // UPDATE CHILD LIST BUT NOT THE ADVANCED OPTIONS.
  $fids = _search_autocomplete_get_all_children($values['fid']);

  // Update the settings for this form + every children form.
  foreach ($fids as $fid) {

    // -> update form.
    db_query('UPDATE {search_autocomplete_forms} SET min_char=%d, max_sug=%d, auto_submit=%d, auto_redirect=%d, no_results="%s", theme="%s" WHERE fid=%d', array(
      $values['min_char'],
      $values['max_sug'],
      $values['auto_submit'],
      $values['auto_redirect'],
      $values['no_results'],
      $values['theme'],
      $fid,
    ));
  }

  // ###.
  drupal_clear_css_cache();
  $form_state['redirect'] = 'admin/settings/search_autocomplete';
  $ok_query ? drupal_set_message(t("Configuration success !")) : drupal_set_message(t("An error has occured while saving the settings. Please, double check your settings!"), 'error');
}