You are here

function search_autocomplete_suggestion_new_submit in Search Autocomplete 6.2

Same name and namespace in other branches
  1. 7.2 search_autocomplete.suggestion.configure.inc \search_autocomplete_suggestion_new_submit()

Implementation of hook_submit(). Save the new form in database

File

./search_autocomplete.suggestion.configure.inc, line 155
Search Autocomplete Create a new suggestion to Search Autocomplete suggestion list.

Code

function search_autocomplete_suggestion_new_submit($form, &$form_state) {
  $ok_query = TRUE;

  // so far so good
  // if cancel the creation:
  if ($form_state['clicked_button']['#name'] == 'cancel') {
    drupal_set_message(t('No suggestion has been created'), 'info');
    $form_state['redirect'] = 'admin/settings/search_autocomplete';
    return;
  }
  $values = $form_state['values'];

  // get a new possible sid
  $matches = db_query('SELECT sid FROM {search_autocomplete_suggestions} ORDER BY sid DESC');
  $match = db_fetch_array($matches);
  $newsid = $match['sid'] + 1;

  // insert the default entry:
  $ok_query &= db_query('INSERT {search_autocomplete_suggestions} SET sid = %d, sug_fid = 0, sug_title = "%s", sug_dependencies = "%s", sug_prefix = "%s", sug_query = "%s"', $newsid, $values['title'], $values['module'], $values['prefix'], $values['query']);

  // duplicate the suggestion for as many form as needed:
  $ret = db_query('SELECT fid FROM {search_autocomplete_forms}');
  while ($match = db_fetch_array($ret)) {
    $ok_query &= db_query('INSERT {search_autocomplete_suggestions} SET sid = %d, sug_fid = %d, sug_title = "%s", sug_dependencies = "%s", sug_prefix = "%s", sug_query = "%s"', $newsid, $match['fid'], $values['title'], $values['module'], $values['prefix'], $values['query']);
  }

  // redirect to configuration page
  $form_state['redirect'] = 'admin/settings/search_autocomplete';

  // Give a return to the user
  $ok_query ? drupal_set_message(t('The suggestion has been created successfully !')) : drupal_set_message(t("An error has occured while creating the suggestion. Please, double check your settings!"), 'error');
}