/** * @test */ public function setBeginTimeForStringSetsBeginTime() { $this->fixture->setBeginTime('Conceived at T3CON10'); $this->assertSame('Conceived at T3CON10', $this->fixture->getBeginTime()); }
/** * 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); }