You are here

function _simplenews_subscription_list_export_get_emails in Simplenews 7

Same name and namespace in other branches
  1. 7.2 includes/simplenews.admin.inc \_simplenews_subscription_list_export_get_emails()

Helper function to get comma separated list of emails to be exported.

Parameters

$states: Array of subscriber states to filter on.

$subscribed: Array of subscription states to filter on.

$newsletters: Array of taxonomy ids to fitler on.

Return value

string Comma separated list of email adresses.

1 call to _simplenews_subscription_list_export_get_emails()
simplenews_subscription_list_export in includes/simplenews.admin.inc
Menu callback: Export email address of subscriptions.

File

includes/simplenews.admin.inc, line 929
Newsletter admin, subscription admin, simplenews settings

Code

function _simplenews_subscription_list_export_get_emails($states, $subscribed, $newsletters) {

  // Build conditions for active state, subscribed state and newsletter selection.
  if (isset($states['active'])) {
    $condition_active[] = 1;
  }
  if (isset($states['inactive'])) {
    $condition_active[] = 0;
  }
  if (isset($subscribed['subscribed'])) {
    $condition_subscribed[] = SIMPLENEWS_SUBSCRIPTION_STATUS_SUBSCRIBED;
  }
  if (isset($subscribed['unsubscribed'])) {
    $condition_subscribed[] = SIMPLENEWS_SUBSCRIPTION_STATUS_UNSUBSCRIBED;
  }
  if (isset($subscribed['unconfirmed'])) {
    $condition_subscribed[] = SIMPLENEWS_SUBSCRIPTION_STATUS_UNCONFIRMED;
  }

  // Get emails from the database.
  $query = db_select('simplenews_subscriber', 'ss');
  $query
    ->innerJoin('simplenews_subscription', 'si', 'si.snid = ss.snid');
  $query
    ->fields('ss', array(
    'mail',
  ))
    ->condition('ss.activated', $condition_active)
    ->condition('si.status', $condition_subscribed)
    ->condition('si.tid', $newsletters)
    ->distinct();
  $mails = $query
    ->execute()
    ->fetchCol(0);

  // Return comma separated array of emails or empty text.
  if ($mails) {
    return implode(", ", $mails);
  }
  return t('No addresses were found.');
}