Как определить, вернул ли apachesolr нулевые результаты? - PullRequest
0 голосов
/ 08 сентября 2010

Я хочу выполнить некоторый код, если apachesolr возвратил нулевые результаты для поискового запроса в отдельном модуле. Я хочу оставить модуль apachesolr и модули acquia нетронутыми.

1 Ответ

0 голосов
/ 14 декабря 2010

Я искал то же самое и нашел этот комментарий очень полезным:

http://drupal.org/node/877346#comment-3310554

По сути, вы просто перезаписываете функцию theme_box в template.php в своей теме и проверяете, соответствует ли заголовок и содержимое стандартному шаблону «без результатов».

Чем я закончил:

function mytheme_box($title, $content, $region = 'main') {
  if ($title == t('Your search yielded no results') &&
      $content == variable_get('apachesolr_search_noresults', apachesolr_search_noresults())) {
    if ($_GET['fuzzyhelp']) {
      // No results with fuzzy, go to landing page for no results. 
      drupal_goto('search_no_results'); 
    }

    // Rewrite search keys with fuzzy characters.
    $keys = array_map('trim', explode(' ', search_get_keys()));
    drupal_goto('search/apachesolr_search/'. implode('~ ', $keys). '~', 'fuzzyhelp=1');    
  }
  else if ($_GET['fuzzyhelp']) {
    // Tell user search was rewritten with fuzzy notations.
    drupal_set_message(t('Your exact search did not match any products and was broadened to include all possible matches.'));
  }

  return $content;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...