You are here

function elasticsearch_connector_search_api_form_search_api_page_search_form_alter in Elasticsearch Connector 7.2

Same name and namespace in other branches
  1. 7.5 modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.module \elasticsearch_connector_search_api_form_search_api_page_search_form_alter()
  2. 7 modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.module \elasticsearch_connector_search_api_form_search_api_page_search_form_alter()

Implements hook_form_FORM_ID_alter().

Adds autocompletion to the keywords field on search pages, if enabled by the user.

File

modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.module, line 325
Provides a elasticsearch-based service class for the Search API.

Code

function elasticsearch_connector_search_api_form_search_api_page_search_form_alter(array &$form, array &$form_state) {
  if (module_exists('search_api_autocomplete')) {
    if (isset($form['form'])) {
      $form =& $form['form'];
    }
    $id = 'search_api_page_' . $form_state['build_info']['args'][0]->machine_name;
    $search = search_api_autocomplete_search_load($id);
    if (!$search || !search_api_autocomplete_access($search)) {
      return;
    }
    $search
      ->alterElement($form['keys_' . $form['id']['#value']]);
    if (!empty($search->options['custom']['link_suggestions'])) {
      $form['keys_' . $form['id']['#value']]['#attached']['js'][] = drupal_get_path('module', 'elasticsearch_connector_search_api') . '/js/elasticsearch_connector_search_api_autocomplete.js';
      $form['keys_' . $form['id']['#value']]['#attributes'] = array(
        'class' => array(
          'elasticsearch-autocomplete',
        ),
      );
    }
  }
}