You are here

function search_autocomplete_form_add_submit in Search Autocomplete 7.4

Same name and namespace in other branches
  1. 6.4 search_autocomplete.form.add.inc \search_autocomplete_form_add_submit()
  2. 6.2 search_autocomplete.form.add.inc \search_autocomplete_form_add_submit()
  3. 7.2 search_autocomplete.form.add.inc \search_autocomplete_form_add_submit()
  4. 7.3 search_autocomplete.form.add.inc \search_autocomplete_form_add_submit()

Implements hook_submit().

Save the new form in database.

File

./search_autocomplete.form.add.inc, line 58
Search Autocomplete Add a new form to Search Autocomplete form list.

Code

function search_autocomplete_form_add_submit($form, &$form_state) {

  // So far so good!
  $ok_query = TRUE;

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

  // Check if already existing records.
  $result = db_select('search_autocomplete_forms', 'f')
    ->fields('f')
    ->condition('title', $values['title'])
    ->condition('selector', $values['selector'])
    ->execute()
    ->fetchAll();
  foreach ($result as $selector) {
    drupal_set_message(t("The title or the selector @selector already exists. Please choose another one.", array(
      '@selector' => $selector,
    )), 'error');
    return;
  }

  // Insert the new form in database.
  $fid = db_insert('search_autocomplete_forms')
    ->fields(array(
    'title' => $values['title'],
    'selector' => $values['selector'],
    'no_results' => json_encode(array(
      // manually add no_results default
      'label' => t('No results found for [search-phrase]. Click to perform full search.'),
      'value' => '[search-phrase]',
      'link' => '',
      'group' => array(
        'group_id' => 'no_results',
      ),
    )),
    'all_results' => json_encode(array(
      // manually add all_results default
      'label' => t('View all results for [search-phrase].'),
      'value' => '[search-phrase]',
      'link' => '',
      'group' => array(
        'group_id' => 'all_results',
      ),
    )),
  ))
    ->execute();

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

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