/**
  * @test
  */
 public function setBeginTimeForStringSetsBeginTime()
 {
     $this->fixture->setBeginTime('Conceived at T3CON10');
     $this->assertSame('Conceived at T3CON10', $this->fixture->getBeginTime());
 }
Beispiel #2
0
 /**
  * Spool a newsletter page out to the real receivers.
  *
  * @global \TYPO3\CMS\Core\Database\DatabaseConnection $TYPO3_DB
  * @param   array        Newsletter record.
  * @param   integer      Actual begin time.
  * @return  void
  */
 public static function createSpool(Tx_Newsletter_Domain_Model_Newsletter $newsletter)
 {
     global $TYPO3_DB;
     // If newsletter is locked because spooling now, or already spooled, then skip
     if ($newsletter->getBeginTime()) {
         return;
     }
     $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extbase_Object_ObjectManager');
     $newsletterRepository = $objectManager->get('Tx_Newsletter_Domain_Repository_NewsletterRepository');
     // Lock the newsletter by setting its begin_time
     $begintime = new DateTime();
     $newsletter->setBeginTime($begintime);
     $newsletterRepository->updateNow($newsletter);
     $emailSpooledCount = 0;
     $recipientList = $newsletter->getRecipientList();
     $recipientList->init();
     while ($receiver = $recipientList->getRecipient()) {
         // Register the receiver
         if (\TYPO3\CMS\Core\Utility\GeneralUtility::validEmail($receiver['email'])) {
             $TYPO3_DB->exec_INSERTquery('tx_newsletter_domain_model_email', array('pid' => $newsletter->getPid(), 'recipient_address' => $receiver['email'], 'recipient_data' => serialize($receiver), 'pid' => $newsletter->getPid(), 'newsletter' => $newsletter->getUid()));
             $emailSpooledCount++;
         }
     }
     Tx_Newsletter_Tools::log("Queued {$emailSpooledCount} emails to be sent for newsletter " . $newsletter->getUid());
     // Schedule repeated newsletter if any
     $newsletter->scheduleNextNewsletter();
     // Unlock the newsletter by setting its end_time
     $newsletter->setEndTime(new DateTime());
     $newsletterRepository->updateNow($newsletter);
 }