public static function bySubscribeTokens($tokens)
 {
     $whereParts = array();
     foreach ($tokens as $token) {
         $whereParts[] = 'token=?';
     }
     $recipientRef = Database::getInstance()->prepare('SELECT DISTINCT recipient FROM orm_avisota_recipient_to_mailing_list WHERE ' . implode(' OR ', $whereParts))->execute($tokens);
     if ($recipientRef->numRows > 1) {
         throw new AvisotaRecipientException('Illegal token list.');
     } else {
         if ($recipientRef->next()) {
             $recipient = new AvisotaIntegratedRecipient();
             $recipient->id = $recipientRef->recipient;
             $recipient->load();
             return $recipient;
         } else {
             return null;
         }
     }
 }
 /**
  * Do the import.
  *
  * @param DataContainer $dc
  */
 public function onsubmit_callback(DataContainer $dc)
 {
     $recipientId = $dc->getData('recipient');
     if ($recipientId != $this->Input->get('id')) {
         $this->redirect('contao/main.php?do=avisota_recipient&table=orm_avisota_recipient_notify&act=edit&id=' . $recipientId);
     }
     $confirmations = $dc->getData('confirmations');
     $notifications = $dc->getData('notifications');
     $overdue = $dc->getData('overdue');
     $recipient = new AvisotaIntegratedRecipient(array('id' => $recipientId));
     $recipient->load();
     if (is_array($confirmations) && count($confirmations)) {
         $recipient->sendSubscriptionConfirmation($confirmations);
     }
     if (is_array($notifications) && count($notifications)) {
         $recipient->sendRemind($notifications, true);
     }
     if (is_array($overdue) && count($overdue)) {
         $recipient->sendRemind($overdue, true);
     }
 }