function search_api_saved_searches_mail in Search API Saved Searches 7
Same name and namespace in other branches
- 8 search_api_saved_searches.module \search_api_saved_searches_mail()
Implements hook_mail().
Two mails are provided, which expect the following values in the $params array:
- activate:
- search: The SearchApiSavedSearch object that should be activated.
- user: The user object to which the saved search belongs.
- notify:
- user: The user to which the executed searches belong.
- settings: The settings with which the searches are associated.
- searches: An array containing arrays with the following keys:
- search: A SearchApiSavedSearch object that was checked.
- result_count: The number of new results for that saved search.
- results: An array of entities representing the new results for that saved search.
File
- ./
search_api_saved_searches.module, line 1140 - Offers the ability to save searches and be notified of new results.
Code
function search_api_saved_searches_mail($key, array &$message, array $params) {
$language = $message['language'];
switch ($key) {
case 'activate':
$search = $params['search'];
$settings = $search
->settings();
$data = array(
'user' => $params['user'],
'search_api_saved_search_info' => array(
'search' => $search,
'results' => array(),
),
);
$title = $settings
->getTranslatedOption('mail.activate.title', $language->language);
$message['subject'] .= token_replace($title, $data, array(
'language' => $language,
'sanitize' => FALSE,
));
$body = $settings
->getTranslatedOption('mail.activate.body', $language->language);
$message['body'][] = token_replace($body, $data, array(
'language' => $language,
'sanitize' => FALSE,
));
break;
case 'notify':
$settings = $params['settings'];
$search = $params['searches'][0]['search'];
$data = array(
'user' => $params['user'],
'search_api_saved_searches' => $params['searches'],
'search_api_saved_search_info' => array(
'search' => $search,
'results' => array(),
),
);
$title = $settings
->getTranslatedOption('mail.notify.title', $language->language);
$message['subject'] .= token_replace($title, $data, array(
'language' => $language,
'sanitize' => FALSE,
));
$body = $settings
->getTranslatedOption('mail.notify.body', $language->language);
$message['body'][] = token_replace($body, $data, array(
'language' => $language,
'sanitize' => FALSE,
));
break;
}
}