You are here

function search_autocomplete_autocomplete in Search Autocomplete 7.4

Same name and namespace in other branches
  1. 5 search_autocomplete.module \search_autocomplete_autocomplete()
  2. 6.4 search_autocomplete.autocomplete.inc \search_autocomplete_autocomplete()
  3. 6 search_autocomplete.module \search_autocomplete_autocomplete()
  4. 6.2 search_autocomplete.module \search_autocomplete_autocomplete()
  5. 7.2 search_autocomplete.module \search_autocomplete_autocomplete()

Page callback: Returns JSON data of content that matches the user's input.

Parameters

string $fid: Description of a parameter for this page.

Return value

NULL Never returns; calls exit().

See also

search_autocomplete_menu()

1 string reference to 'search_autocomplete_autocomplete'
search_autocomplete_menu in ./search_autocomplete.admin.inc
Implements hook_menu().

File

./search_autocomplete.autocomplete.inc, line 58
Function to compute the various autocomplete features.

Code

function search_autocomplete_autocomplete($fid) {
  $user_input = isset($_GET['term']) ? $_GET['term'] : '';
  $user_input = filter_xss($user_input);
  $result = db_select('search_autocomplete_forms', 'f')
    ->fields('f', array(
    'data_view',
    'no_results',
    'all_results',
  ))
    ->condition('f.fid', $fid, '=')
    ->execute()
    ->fetchAssoc();
  $view = views_get_view($result['data_view']);
  $view_exposed_filters = views_get_view($result['data_view']);
  $view_exposed_filters
    ->set_display('default');
  $view_exposed_filters->is_cacheable = FALSE;
  $view_exposed_filters
    ->execute();
  foreach ($view_exposed_filters->exposed_raw_input as $key => $value) {
    $view->exposed_input[$key] = $user_input;
  }

  // Add our custom data in the view for rendering.
  $view->autocompletion_data['user_input'] = addslashes($user_input);
  $view->autocompletion_data['no_results'] = $result['no_results'];
  $view->autocompletion_data['all_results'] = $result['all_results'];
  if (method_exists($view, 'render')) {
    echo $view
      ->render();
  }
  else {
    echo drupal_json_encode(array());
  }
  exit;
}