You are here

function search_autocomplete_suggestion_new_submit in Search Autocomplete 7.2

Same name and namespace in other branches
  1. 6.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 171
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/config/search/search_autocomplete';
    return;
  }
  $values = $form_state['values'];

  // get a new possible sid
  $result = db_select('search_autocomplete_suggestions', 's')
    ->fields('s', array(
    'sid',
  ))
    ->orderBy('sid', 'DESC')
    ->execute()
    ->fetchAllAssoc('sid');
  $newsid = key($result) + 1;

  // insert the default entry:
  $ok_query &= db_insert('search_autocomplete_suggestions')
    ->fields(array(
    'sid' => $newsid,
    'sug_fid' => 0,
    'sug_title' => $values['title'],
    'sug_dependencies' => $values['dependancies'],
    'sug_prefix' => $values['prefix'],
    'sug_query' => $values['query'],
  ))
    ->execute();

  // duplicate the suggestion for as many form as needed:
  $result = db_select('search_autocomplete_forms', 'f')
    ->fields('f', array(
    'fid',
  ))
    ->execute()
    ->fetchAllAssoc('fid');
  foreach ($result as $match) {
    db_insert('search_autocomplete_suggestions')
      ->fields(array(
      'sid' => $newsid,
      'sug_fid' => $match->fid,
      'sug_title' => $values['title'],
      'sug_dependencies' => $values['dependancies'],
      'sug_prefix' => $values['prefix'],
      'sug_query' => $values['query'],
    ))
      ->execute();
  }

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

  // Give a return to the user
  drupal_set_message(t('The suggestion has been created successfully !'));
}