/** * @param Request $request * @param $slug * @return Response */ public function subscribeAction(Request $request, $slug) { $referer = $request->headers->get('referer'); /** @var EntityManager $em */ $em = $this->getDoctrine()->getManager(); /** @var Journal $journal */ $journal = $em->getRepository('OjsJournalBundle:Journal')->findOneBySlug($slug); $this->throw404IfNotFound($journal); $email = $request->get('mail'); $emailConstraint = new EmailConstraint(); $errors = $this->get('validator')->validateValue($email, $emailConstraint); if (count($errors) > 0 || empty($email)) { $this->errorFlashBag('invalid.mail'); return $this->redirect($referer); } $subscribeMail = new SubscribeMailList(); $subscribeMail->setMail($email); $subscribeMail->setJournal($journal); $em->persist($subscribeMail); $em->flush(); $this->successFlashBag('successfully.subscribed'); return $this->redirect($referer); }
/** * @param Request $request * @param $slug * @param boolean $isJournalHosting * @return Response */ public function subscribeAction(Request $request, $slug, $isJournalHosting = false) { $referer = $request->headers->get('referer'); /** @var EntityManager $em */ $em = $this->getDoctrine()->getManager(); /** @var Journal $journal */ $journal = $em->getRepository('OjsJournalBundle:Journal')->findOneBy(array('slug' => $slug)); $this->throw404IfNotFound($journal); if ($journal->getStatus() !== JournalStatuses::STATUS_PUBLISHED || $journal->getPublisher()->getStatus() !== PublisherStatuses::STATUS_COMPLETE) { $journal = null; $this->throw404IfNotFound($journal); } $email = $request->get('mail'); $emailConstraint = new EmailConstraint(); $errors = $this->get('validator')->validateValue($email, $emailConstraint); if (count($errors) > 0 || empty($email)) { $this->errorFlashBag('invalid.mail'); return $this->redirect($referer); } $subscribeMail = new SubscribeMailList(); $subscribeMail->setMail($email); $subscribeMail->setJournal($journal); $em->persist($subscribeMail); $em->flush(); $this->successFlashBag('successfully.subscribed'); return $this->redirect($referer); }