You are here

function _uniqueness_content_drupalsearch in Uniqueness 7

Same name and namespace in other branches
  1. 6 uniqueness.module \_uniqueness_content_drupalsearch()

Searches for related content using the drupal core search module.

1 call to _uniqueness_content_drupalsearch()
uniqueness_content in ./uniqueness.module
Perform lookup of related or similar content.

File

./uniqueness.module, line 437
uniqueness.module

Code

function _uniqueness_content_drupalsearch($values) {

  // Check that the core search module is available
  if (!module_exists('search')) {
    drupal_set_message(t('Search module not found. Please enable the search module or select a different search mode on the uniqueness configuration page.'), 'warning');
    return array();
  }

  // build search string
  $searchstring = array_key_exists('type', $values) ? ' type:' . $values['type'] . ' ' : '';
  $searchstring .= join(' OR ', explode(' ', $values['title']));
  $search_results = node_search_execute($searchstring);

  // node_search is automatically limited to max. 10 results, but in case we
  // want even less we need to further reduce the number of results.
  $limit = variable_get('uniqueness_results_max', 10);
  if (count($search_results) > $limit + 1) {

    // +1 for "... and more"
    array_slice($search_results, 0, $limit + 1, TRUE);
  }
  $related_content = array();
  $nid = array_key_exists('nid', $values) ? $values['nid'] : 0;
  foreach ($search_results as $result) {
    $item = array();

    // Title has already been filtered.
    $item['html'] = TRUE;
    $item['nid'] = $result['node']->nid;
    $item['title'] = $result['title'];
    if ($nid != $item['nid']) {
      $related_content["{$result['node']->nid}"] = $item;
    }
  }
  return $related_content;
}