/**
  * {@inheritdoc}
  */
 public function getChangesList(SubscriberInterface $subscriber, $changes = NULL, $langcode = NULL)
 {
     if (empty($langcode)) {
         $language = $this->languageManager->getCurrentLanguage();
         $langcode = $language->getId();
     }
     if (empty($changes)) {
         $changes = $subscriber->getChanges();
     }
     $changes_list = array();
     foreach ($changes as $newsletter_id => $action) {
         $subscribed = $subscriber->isSubscribed($newsletter_id);
         // Get text for each possible combination.
         if ($action == 'subscribe' && !$subscribed) {
             $line = $this->config->get('subscription.confirm_combined_line_subscribe_unsubscribed');
         } elseif ($action == 'subscribe' && $subscribed) {
             $line = $this->config->get('subscription.confirm_combined_line_subscribe_subscribed');
         } elseif ($action == 'unsubscribe' && !$subscribed) {
             $line = $this->config->get('subscription.confirm_combined_line_unsubscribe_unsubscribed');
         } elseif ($action == 'unsubscribe' && $subscribed) {
             $line = $this->config->get('subscription.confirm_combined_line_unsubscribe_subscribed');
         }
         $newsletter_context = array('simplenews_subscriber' => $subscriber, 'newsletter' => simplenews_newsletter_load($newsletter_id));
         $changes_list[$newsletter_id] = $this->token->replace($line, $newsletter_context, array('sanitize' => FALSE));
     }
     return $changes_list;
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function sendCombinedConfirmation(SubscriberInterface $subscriber)
 {
     $params['from'] = $this->getFrom();
     $params['context']['simplenews_subscriber'] = $subscriber;
     // Send multiple if there is more than one change for this subscriber
     // single otherwise.
     $use_combined = $this->config->get('subscription.use_combined');
     $changes = $subscriber->getChanges();
     if (count($changes) > 1 && $use_combined != 'never' || $use_combined == 'always') {
         $key = 'subscribe_combined';
         $this->mailManager->mail('simplenews', $key, $subscriber->getMail(), $subscriber->getLangcode(), $params, $params['from']['address']);
     } else {
         foreach ($changes as $newsletter_id => $key) {
             $params['context']['newsletter'] = simplenews_newsletter_load($newsletter_id);
             $this->mailManager->mail('simplenews', $key, $subscriber->getMail(), $subscriber->getLangcode(), $params, $params['from']['address']);
         }
     }
 }