public function SubscriberExportForm::getEmails in Simplenews 8.2
Same name and namespace in other branches
- 8 src/Form/SubscriberExportForm.php \Drupal\simplenews\Form\SubscriberExportForm::getEmails()
- 3.x src/Form/SubscriberExportForm.php \Drupal\simplenews\Form\SubscriberExportForm::getEmails()
Implement getEmails($states, $subscribed, $newsletters)
1 call to SubscriberExportForm::getEmails()
- SubscriberExportForm::buildForm in src/
Form/ SubscriberExportForm.php - Form constructor.
File
- src/
Form/ SubscriberExportForm.php, line 25
Class
- SubscriberExportForm
- Do a mass subscription for a list of email addresses.
Namespace
Drupal\simplenews\FormCode
public function getEmails($states, $subscribed, $newsletters) {
// Build conditions for active state, subscribed state and newsletter
// selection.
if (isset($states['active'])) {
$condition_active[] = SubscriberInterface::ACTIVE;
}
if (isset($states['inactive'])) {
$condition_active[] = SubscriberInterface::INACTIVE;
}
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 = \Drupal::entityQuery('simplenews_subscriber')
->condition('status', $condition_active, 'IN')
->condition('subscriptions.status', $condition_subscribed, 'IN')
->condition('subscriptions.target_id', (array) $newsletters, 'IN');
$subscriber_ids = $query
->execute();
$mails = [];
foreach ($subscriber_ids as $id) {
$subscriber = Subscriber::load($id);
$mails[] = $subscriber
->getMail();
}
// Return comma separated array of emails or empty text.
if ($mails) {
return implode(", ", $mails);
}
return $this
->t('No addresses were found.');
}