コード例 #1
0
ファイル: SiteController.php プロジェクト: necatikartal/ojs
 /**
  * @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);
 }
コード例 #2
0
ファイル: JournalController.php プロジェクト: ojs/ojs
 /**
  * @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);
 }