|
@@ -172,15 +172,17 @@ function materio_search_api_results_search(){
|
|
|
$index_machine_name = variable_get('brevessearchindex_'.$language->language, -1);
|
|
|
// dsm($index_machine_name, '$index_machine_name');
|
|
|
$index = search_api_index_load($index_machine_name);
|
|
|
+
|
|
|
+ $could_index_machine_name = variable_get('mainsearchindex_'.$language->language, -1);
|
|
|
+ $could_index = search_api_index_load($index_machine_name);
|
|
|
}
|
|
|
|
|
|
// $index_machine_name = variable_get('brevessearchindex_'.$language->language, -1);
|
|
|
// dsm($index_machine_name, '$index_machine_name');
|
|
|
|
|
|
$indexed_bundles = $index->options['data_alter_callbacks']['search_api_alter_bundle_filter']['settings']['bundles'];
|
|
|
- foreach ($indexed_bundles as $bundle) {
|
|
|
- $default_bundles[] = $bundle;
|
|
|
- }
|
|
|
+ foreach ($indexed_bundles as $bundle) { $default_bundles[] = $bundle; }
|
|
|
+
|
|
|
$bundles_filter = isset($user->data['materiosearchapi_bundlesfilter']) ? $user->data['materiosearchapi_bundlesfilter'] : $default_bundles;
|
|
|
// dsm($bundles_filter, 'bundles_filter');
|
|
|
|
|
@@ -205,6 +207,16 @@ function materio_search_api_results_search(){
|
|
|
$query->filter($filter);
|
|
|
|
|
|
$results = $query->execute();
|
|
|
+
|
|
|
+ # in case of utilisateur search, run a real search to indicate how much items you could find
|
|
|
+ if(isset($could_index)){
|
|
|
+ $could_query = search_api_query($could_index_machine_name, array('conjunction'=>'OR', 'parse mode'=>'direct'))
|
|
|
+ ->keys(implode(' ', $keys))
|
|
|
+ ->range($offset, $limit)
|
|
|
+ ->filter($filter);
|
|
|
+
|
|
|
+ $could_results = $could_query->execute();
|
|
|
+ }
|
|
|
}
|
|
|
catch (SearchApiException $e) {
|
|
|
$ret['message'] = t('An error occurred while executing the search. Please try again or contact the site administrator if the problem persists.');
|
|
@@ -243,6 +255,7 @@ function materio_search_api_results_search(){
|
|
|
if(user_access('use materio search api')){
|
|
|
$items = $index->loadItems(array_keys($results['results']));
|
|
|
// dsm($items, 'items');
|
|
|
+ // $count = $results['result count'];
|
|
|
}else if(user_access('use materio search api for breves')){
|
|
|
$items = array();
|
|
|
$breves = $index->loadItems(array_keys($results['results']));
|
|
@@ -262,18 +275,17 @@ function materio_search_api_results_search(){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ $results['breves count'] = $results['result count'];
|
|
|
+ $results['result count'] = count($items);
|
|
|
+ $results['could results'] = $could_results;
|
|
|
}
|
|
|
|
|
|
|
|
|
$ret['results']['#theme'] = 'materio_search_api_results';
|
|
|
- /*
|
|
|
- TODO choose index in module settings
|
|
|
- */
|
|
|
$ret['results']['#index'] = $index;//search_api_index_load($index_machine_name);
|
|
|
$ret['results']['#results'] = $results;
|
|
|
-
|
|
|
$ret['results']['#items'] = $items;
|
|
|
-
|
|
|
$ret['results']['#view_mode'] = $viewmode;
|
|
|
$ret['results']['#keys'] = $keys;
|
|
|
|