You are here

function apachesolr_autocomplete_callback in Apache Solr Autocomplete 7.2

Same name and namespace in other branches
  1. 6 apachesolr_autocomplete.module \apachesolr_autocomplete_callback()
  2. 7 apachesolr_autocomplete.module \apachesolr_autocomplete_callback()

Callback for url apachesolr_autocomplete/autocomplete.

Parameters

$context_id: A string identifying the form. For example: apachesolr_search_page:core_search

1 string reference to 'apachesolr_autocomplete_callback'
apachesolr_autocomplete_menu in ./apachesolr_autocomplete.module
Implementation of hook_menu().

File

./apachesolr_autocomplete.module, line 178
Alters search forms to suggest terms using Apache Solr using AJAX.

Code

function apachesolr_autocomplete_callback($context_id) {

  // Get user entry
  $keys = isset($_GET['term']) ? $_GET['term'] : '';
  if (!$keys) {

    // Exit quickly.
    drupal_json_output(array());
    exit;
  }

  // TODO: Get more user entry, like state of 'retain current filters' and current filters, etc.
  // Get the configuration for the context_id
  $context = apachesolr_autocomplete_get_default_context($context_id);

  // Exit quickly if no context exists.
  if (!$context) {
    drupal_json_output(array());
    exit;
  }

  // TODO: Override the context with any UI-based configuration.
  // TODO: Override the context with user entry, like state of 'retain current filters' and current filters, etc. See .autocomplete(... source:...) on on apachesolr_autocomplete.js
  // Allow other modules to alter the context.
  drupal_alter('apachesolr_autocomplete_context', $context);

  // Run suggestion engines.
  $suggestions = apachesolr_autocomplete_invoke($keys, $context);

  // Output caching headers

  #header("Cache-Control: public, max-age=" . $context['cache_max_age']); // TODO: DEBUG.
  drupal_json_output(array_values($suggestions));

  #print_r($context); // TODO: DEBUG.

  #print_r($suggestions); // TODO: DEBUG.
  exit;
}