Exemplo n.º 1
0
 /**
  * @test
  */
 public function removeSubscriberFromObjectStorageHoldingSubscribers()
 {
     $subscriber = new Tx_WoehrlSeminare_Domain_Model_Subscriber();
     $localObjectStorage = new Tx_Extbase_Persistence_ObjectStorage();
     $localObjectStorage->attach($subscriber);
     $localObjectStorage->detach($subscriber);
     $this->fixture->addSubscriber($subscriber);
     $this->fixture->removeSubscriber($subscriber);
     $this->assertEquals($localObjectStorage, $this->fixture->getSubscribers());
 }
Exemplo n.º 2
0
 /**
  * action delete
  *
  * @param Tx_WoehrlSeminare_Domain_Model_Event $event
  * @param string $subscriber
  * @ignorevalidation $event
  * @ignorevalidation $editcode
  * @return void
  */
 public function deleteAction(Tx_WoehrlSeminare_Domain_Model_Event $event = NULL, $editcode)
 {
     $myModifiedModel = new Tx_WoehrlSeminare_Domain_Model_Kostenstelle();
     $myModifiedModel = $this->kostenstelleRepository->findByEditcode($editcode);
     if (isset($myModifiedModel[0])) {
         $myModifiedModel[0]->setHidden(1);
         $this->kostenstelleRepository->update($myModifiedModel[0]);
         $persistenceManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager');
         $persistenceManager->persistAll();
     }
     //TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($myModifiedModel[0]);
     // somebody is calling the action without giving an event --> useless
     if ($event === NULL) {
         $this->redirect('eventNotFound');
     }
     // delete for which subscriber?
     $subscriber = $this->subscriberRepository->findAllByEditcode($editcode)->getFirst();
     // multiple removal is possible... don't know, how to distinguish
     $event->removeSubscriber($subscriber);
     // some helper timestamps for ics-file
     $helper['now'] = time();
     $helper['isdelete'] = 1;
     $helper['description'] = $this->foldline($this->html2rest($event->getDescription()));
     // location may be empty...
     if (is_object($event->getLocation())) {
         $helper['location'] = $event->getLocation()->getName();
         $helper['locationics'] = $this->foldline($event->getLocation()->getName());
     }
     $helper['nameto'] = strtolower(str_replace(array(',', ' '), array('', '-'), $subscriber->getName()));
     $helper['start'] = $event->getStartDateTime()->getTimestamp();
     // endDate may be empty
     if ($event->getEndDateTime() instanceof \DateTime && $event->getStartDateTime() != $event->getEndDateTime()) {
         $helper['end'] = $event->getEndDateTime()->getTimestamp();
     }
     if ($event->isAllDay()) {
         $helper['allDay'] = 1;
     }
     // send to contact, if
     //  1. new subscriber count is below minSubscriber
     //     AND
     //  2. before subscriber count was above minSubscriber -> event was guaranteed
     //     AND
     //  3. settings sendEmailOnFreeAgain
     if ($this->settings['emailToContact']['sendEmailOnFreeAgain'] && $this->subscriberRepository->countAllByEvent($event) >= $event->getMinSubscriber() && $this->subscriberRepository->countAllByEvent($event) - $subscriber->getNumber() < $event->getMinSubscriber()) {
         $helper['nameto'] = strtolower(str_replace(array(',', ' '), array('', '-'), $event->getContact()->getName()));
         // email to event owner
         $this->sendTemplateEmail(array($event->getContact()->getEmail() => $event->getContact()->getName()), array($this->settings['senderEmailAddress'] => Tx_Extbase_Utility_Localization::translate('tx_woehrlseminare.be.eventmanagement', 'woehrl_seminare')), 'Veranstaltung wegen Abmeldung nicht mehr gesichert: ' . $event->getTitle(), 'Minimumreachedagain', array('event' => $event, 'subscribers' => $event->getSubscribers(), 'subscriberCount' => $this->subscriberRepository->countAllByEvent($event) - $subscriber->getNumber(), 'helper' => $helper, 'settings' => $this->settings, 'attachSubscriberAsCsv' => FALSE, 'attachIcsInvitation' => TRUE));
     }
     $this->sendTemplateEmail(array($subscriber->getEmail() => $subscriber->getName()), array($event->getContact()->getEmail() => $event->getContact()->getName()), 'Ihre Abmeldung: ' . $event->getTitle(), 'Unsubscribe', array('event' => $event, 'subscriber' => $subscriber, 'helper' => $helper, 'settings' => $this->settings, 'attachIcsInvitation' => TRUE));
     // we changed the event inside the repository and have to
     // update the repo manually as of TYPO3 6.1
     $this->eventRepository->update($event);
     $this->clearAllEventListCache($event->getGeniusBar());
     $this->view->assign('event', $event);
     $this->view->assign('subscriber', $subscriber);
 }