You are here

function apachesolr_search_search_page_custom in Apache Solr Search 7

Same name and namespace in other branches
  1. 8 apachesolr_search.module \apachesolr_search_search_page_custom()
  2. 6.3 apachesolr_search.module \apachesolr_search_search_page_custom()

Mimics apachesolr_search_search_page() but is used for custom search pages We prefer to keep them separate so we are not dependent from core search when someone tries to disable the core search

Parameters

$results: The results that came from apache solr

$build: the build array from where this function was called. Good to append output to the build array

$search_page: the search page that is requesting an output

2 calls to apachesolr_search_search_page_custom()
apachesolr_search_custom_page in ./apachesolr_search.pages.inc
Returns search results on user defined search pages.
apachesolr_search_search_page in ./apachesolr_search.module
Implements hook_search_page().

File

./apachesolr_search.module, line 835
Provides a content search implementation for node content for use with the Apache Solr search application.

Code

function apachesolr_search_search_page_custom($results, $search_page, $build = array()) {
  if (!empty($search_page['settings']['apachesolr_search_spellcheck'])) {

    // Retrieve suggestion
    $env_id = $search_page['env_id'] == -1 ? variable_get('apachesolr_default_environment', '') : $search_page['env_id'];
    $suggestions = apachesolr_search_get_search_suggestions($env_id);
    if ($search_page && !empty($suggestions)) {
      $build['suggestions'] = array(
        '#theme' => 'apachesolr_search_suggestions',
        '#links' => array(
          l($suggestions[0], $search_page['search_path'] . '/' . $suggestions[0]),
        ),
      );
    }
  }

  // Retrieve expected results from searching
  if (!empty($results['apachesolr_search_browse'])) {

    // Show facet browsing blocks.
    $build['search_results'] = apachesolr_search_page_browse($results['apachesolr_search_browse'], $env_id);
  }
  elseif ($results) {
    $build['search_results'] = array(
      '#theme' => 'search_results',
      '#results' => $results,
      '#module' => 'apachesolr_search',
      '#search_page' => $search_page,
    );
  }
  else {

    // Give the user some custom help text.
    $build['search_results'] = array(
      '#markup' => theme('apachesolr_search_noresults'),
    );
  }

  // Allows modules to alter the render array before returning.
  drupal_alter('apachesolr_search_page', $build, $search_page);
  return $build;
}