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); } }