You are here

function search_api_saved_searches_mail in Search API Saved Searches 7

Same name and namespace in other branches
  1. 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;
  }
}