function search_api_saved_searches_block_view in Search API Saved Searches 7
Implements hook_block_view().
File
- ./
search_api_saved_searches.module, line 718 - Offers the ability to save searches and be notified of new results.
Code
function search_api_saved_searches_block_view($delta = '') {
$searches = search_api_current_search();
if (!$searches) {
return;
}
if (!user_access('use search_api_saved_searches')) {
return;
}
$settings = search_api_saved_searches_settings_load($delta);
if (!$settings || !search_api_saved_search_create_access($settings)) {
return;
}
$index_id = $settings->index_id;
$options = $settings->options;
$ids_list = drupal_map_assoc($options['ids_list']);
$search_ids = variable_get('search_api_saved_searches_search_ids', array());
foreach ($searches as $id => $data) {
if ($data[0]
->getIndex()->machine_name == $index_id) {
if (!isset($search_ids[$index_id][$id])) {
$search_ids[$index_id][$id] = $id;
$search_ids_updated = TRUE;
}
if (isset($ids_list[$id]) != $options['default_true']) {
if (isset($query)) {
watchdog('search_api_saved_searches', 'Two matching searches on index %index for saved search block.', array(
'%index' => $settings
->index()->name,
), WATCHDOG_WARNING, l(t('view page'), $_GET['q'], array(
'query' => drupal_get_query_parameters(),
)));
}
else {
list($query, $results) = $data;
}
}
}
}
if (isset($search_ids_updated)) {
variable_set('search_api_saved_searches_search_ids', $search_ids);
}
if (empty($query)) {
return;
}
return array(
'subject' => t('Save search'),
'content' => array(
'form' => drupal_get_form('search_api_saved_searches_save_form', $settings, $query),
),
);
}