/** * Notifies participants for the next event * * @return void */ public function notifyCommand() { $this->settings = $this->configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS); $eventStartTime = $this->settings['eventStartTime']; $participantGroupId = $this->settings['participantGroupId']; $eventPageUid = $this->settings['eventPageUid']; $offset = 0; $eventStartDate = $this->div->nextEventDate($offset); $events = $this->eventRepository->findByStart($eventStartDate->format("Y-m-d H:i:s")); if ($events->count() == 0) { $this->div->createEvent($eventStartDate); $events = $this->eventRepository->findByStart($eventStartDate->format("Y-m-d H:i:s")); } if ($events->getFirst()->getActive()) { $this->initFrontend(); $cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer'); $link = $cObj->typolink_URL(array('parameter' => "{$eventPageUid}", 'forceAbsoluteUrl' => 1)); $acceptUrl = $link . "?&tx_pceventscheduler_pceventscheduler%5Baction%5D=accept"; $cancelUrl = $link . "?&tx_pceventscheduler_pceventscheduler%5Baction%5D=cancel"; $participantsUnknown = $this->participantRepository->findParticipantsUnknown($events->getFirst()->getUid(), $participantGroupId); if (isset($participantsUnknown)) { foreach ($participantsUnknown as $participantUnknown) { $receiverEmail = $participantUnknown['email']; $receiverName = $participantUnknown['name']; $from = \TYPO3\CMS\Core\Utility\MailUtility::getSystemFrom(); $mail = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Mail\\MailMessage'); $mail->setFrom($from); $mail->setSubject($this->settings['notifyMailSubject']); $mail->setTo($receiverEmail); $mail->setBody(str_replace(array('###name###', '###eventdate###', '###eventtime###', '###eventlocation###', '###acceptlink###', '###cancellink###'), array($receiverName, $events->getFirst()->getStart()->format("d.m.Y"), $eventStartTime, $events->getFirst()->getLocation(), $acceptUrl, $cancelUrl), $this->settings['notifyMailBody']), 'text/html'); $mail->send(); } } } return true; }
/** * action location * * @return void */ public function locationAction() { if (!$this->div->isLoggedUserInGroup($this->settings['eventAdminGroupId'])) { $this->addFlashMessage($this->div->translate('message.noAdmin', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('list'); } $location = $this->request->getArgument('location'); if ($this->request->hasArgument('offset')) { $offset = $this->request->getArgument('offset'); if ($offset < 0) { $this->addFlashMessage($this->div->translate('message.pastEventError', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('list', Null, Null, array('offset' => $offset)); } } if (!$this->request->hasArgument('offset')) { $offset = 0; } $eventStartDate = $this->div->nextEventDate($offset); $events = $this->eventRepository->findByStart($eventStartDate->format("Y-m-d H:i:s")); $events->getFirst()->setLocation($location); $this->eventRepository->update($events->getFirst()); $this->addFlashMessage($this->div->translate('message.setLocation', $this->extensionName) . ": {$location}", '', \TYPO3\CMS\Core\Messaging\AbstractMessage::OK); $this->redirect('list', Null, Null, array('offset' => $offset)); }