コード例 #1
0
ファイル: AbstractJournalItemMailer.php プロジェクト: ojs/ojs
 protected function sendMail(JournalItemEvent $itemEvent, $item, $action)
 {
     $journalItem = $itemEvent->getItem();
     foreach ($this->ojsMailer->getJournalRelatedUsers() as $user) {
         $this->ojsMailer->sendToUser($user, 'A ' . $item . ' ' . $action . ' -> ' . $journalItem->getJournal()->getTitle(), 'A ' . $item . ' ' . $action . ' -> ' . $journalItem->getJournal()->getTitle() . ' -> by ' . $this->user->getUsername());
     }
 }
コード例 #2
0
 protected function sendMail(JournalItemEvent $itemEvent, $item, $action)
 {
     $mailUsers = $this->em->getRepository('OjsUserBundle:User')->findUsersByJournalRole(['ROLE_JOURNAL_MANAGER', 'ROLE_EDITOR']);
     $journalItem = $itemEvent->getItem();
     foreach ($mailUsers as $user) {
         $this->ojsMailer->sendToUser($user, 'A ' . $item . ' ' . $action . ' -> ' . $journalItem->getJournal()->getTitle(), 'A ' . $item . ' ' . $action . ' -> ' . $journalItem->getJournal()->getTitle() . ' -> by ' . $this->user->getUsername());
     }
 }
コード例 #3
0
ファイル: ArticleMailer.php プロジェクト: beyzakokcan/ojs
 /**
  * @param JournalItemEvent $itemEvent
  */
 public function onArticlePostSubmit(JournalItemEvent $itemEvent)
 {
     /** @var Article $article */
     $article = $itemEvent->getItem();
     $submitterUser = $article->getSubmitterUser();
     $this->sendMail($itemEvent, 'Article', 'Submitted');
     //send mail to author
     $this->ojsMailer->sendToUser($submitterUser, 'Journal Event : Journal Article Submitted Success', 'Journal Event : Journal Article Submitted Success-> by ' . $submitterUser->getUsername());
 }
コード例 #4
0
 public function sendAnnouncement(JournalItemEvent $itemEvent)
 {
     /** @var JournalAnnouncement $announcement */
     $announcement = $itemEvent->getItem();
     $mailList = $this->em->getRepository('OjsJournalBundle:SubscribeMailList')->findBy(['journal' => $announcement->getJournal()]);
     foreach ($mailList as $mail) {
         $this->ojsMailer->send($announcement->getTitle(), $announcement->getContent(), $mail->getMail(), $mail->getMail());
     }
 }
コード例 #5
0
 /**
  * @param JournalItemEvent $itemEvent
  */
 public function onJournalSubmissionFilePreDelete(JournalItemEvent $itemEvent)
 {
     $getMailEvent = $this->ojsMailer->getEventByName(JournalSubmissionFileEvents::PRE_DELETE, null, $itemEvent->getItem()->getJournal());
     if (!$getMailEvent) {
         return;
     }
     /** @var User $user */
     foreach ($this->ojsMailer->getJournalRelatedUsers() as $user) {
         $transformParams = ['submission.file' => (string) $itemEvent->getItem(), 'done.by' => $this->ojsMailer->currentUser()->getUsername(), 'receiver.username' => $user->getUsername(), 'receiver.fullName' => $user->getFullName()];
         $template = $this->ojsMailer->transformTemplate($getMailEvent->getTemplate(), $transformParams);
         $this->ojsMailer->sendToUser($user, $getMailEvent->getSubject(), $template);
     }
 }
コード例 #6
0
ファイル: JournalUserMailer.php プロジェクト: ojs/ojs
 /**
  * @param JournalItemEvent $itemEvent
  */
 public function onJournalUserPostAddJournal(JournalItemEvent $itemEvent)
 {
     $getMailEvent = $this->ojsMailer->getEventByName(JournalUserEvents::POST_ADD_JOURNAL, null, $itemEvent->getItem()->getJournal());
     if (!$getMailEvent) {
         return;
     }
     /** @var User $user */
     foreach ($this->ojsMailer->getJournalRelatedUsers() as $user) {
         $transformParams = ['journal' => (string) $itemEvent->getItem()->getJournal(), 'journal.user' => (string) $itemEvent->getItem(), 'done.by' => $this->ojsMailer->currentUser()->getUsername(), 'receiver.username' => $user->getUsername(), 'receiver.fullName' => $user->getFullName()];
         $template = $this->ojsMailer->transformTemplate($getMailEvent->getTemplate(), $transformParams);
         $this->ojsMailer->sendToUser($user, $getMailEvent->getSubject(), $template);
     }
 }
コード例 #7
0
ファイル: ArticleMailer.php プロジェクト: ojs/ojs
 /**
  * @param JournalItemEvent $itemEvent
  */
 public function onArticlePostSubmit(JournalItemEvent $itemEvent)
 {
     /** @var Article $article */
     $article = $itemEvent->getItem();
     $submitterUser = $article->getSubmitterUser();
     $getMailEvent = $this->ojsMailer->getEventByName(ArticleEvents::POST_SUBMIT, null, $itemEvent->getItem()->getJournal());
     if (!$getMailEvent) {
         return;
     }
     foreach ($this->ojsMailer->getJournalRelatedUsers() as $user) {
         $transformParams = ['journal' => (string) $itemEvent->getItem()->getJournal(), 'article.title' => $itemEvent->getItem()->getTitle(), 'submitter.username' => $submitterUser->getUsername(), 'receiver.username' => $user->getUsername(), 'receiver.fullName' => $user->getFullName()];
         $template = $this->ojsMailer->transformTemplate($getMailEvent->getTemplate(), $transformParams);
         $this->ojsMailer->sendToUser($user, $getMailEvent->getSubject(), $template);
     }
     //send mail to submitter user
     $transformParams = ['journal' => (string) $itemEvent->getItem()->getJournal(), 'article.title' => $itemEvent->getItem()->getTitle(), 'submitter.username' => $submitterUser->getUsername(), 'receiver.username' => $submitterUser->getUsername(), 'receiver.fullName' => $submitterUser->getFullName()];
     $template = $this->ojsMailer->transformTemplate($getMailEvent->getTemplate(), $transformParams);
     $this->ojsMailer->sendToUser($submitterUser, $getMailEvent->getSubject(), $template);
 }
コード例 #8
0
 /**
  * Edits an existing SubmissionFile entity.
  *
  * @param  Request                   $request
  * @param  JournalSubmissionFile     $entity
  * @return RedirectResponse|Response
  */
 public function updateAction(Request $request, JournalSubmissionFile $entity)
 {
     $journal = $this->get('ojs.journal_service')->getSelectedJournal();
     $eventDispatcher = $this->get('event_dispatcher');
     $this->throw404IfNotFound($entity);
     if (!$this->isGranted('EDIT', $journal, 'file')) {
         throw new AccessDeniedException("You are not authorized for view this page!");
     }
     $em = $this->getDoctrine()->getManager();
     $editForm = $this->createEditForm($entity);
     $editForm->handleRequest($request);
     if ($editForm->isValid()) {
         $event = new JournalItemEvent($entity);
         $eventDispatcher->dispatch(JournalSubmissionFileEvents::PRE_UPDATE, $event);
         $em->persist($event->getItem());
         $em->flush();
         $event = new JournalItemEvent($event->getItem());
         $eventDispatcher->dispatch(JournalSubmissionFileEvents::POST_UPDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
         $this->successFlashBag('successful.update');
         return $this->redirect($this->generateUrl('ojs_journal_file_edit', array('id' => $entity->getId(), 'journalId' => $journal->getId())));
     }
     return $this->render('OjsJournalBundle:SubmissionFile:edit.html.twig', array('entity' => $entity, 'edit_form' => $editForm->createView()));
 }
コード例 #9
0
ファイル: ArticleController.php プロジェクト: ojs/ojs
 /**
  * Edits an existing Article entity.
  *
  * @param  Request                   $request
  * @param  Article                   $article
  * @return RedirectResponse|Response
  *
  */
 public function updateAction(Request $request, Article $article)
 {
     $journal = $this->get('ojs.journal_service')->getSelectedJournal();
     $em = $this->getDoctrine()->getManager();
     if (!$this->isGranted('EDIT', $journal, 'articles')) {
         throw new AccessDeniedException("You not authorized for this page!");
     }
     $dispatcher = $this->get('event_dispatcher');
     $editForm = $this->createEditForm($article, $journal)->add('update', 'submit', array('label' => 'u'));
     $editForm->handleRequest($request);
     if ($editForm->isValid()) {
         $event = new JournalItemEvent($article);
         $dispatcher->dispatch(ArticleEvents::PRE_UPDATE, $event);
         $em->persist($event->getItem());
         $em->flush();
         $this->successFlashBag('successful.update');
         $event = new JournalItemEvent($event->getItem());
         $dispatcher->dispatch(ArticleEvents::POST_UPDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
         return $this->redirect($this->generateUrl('ojs_journal_article_edit', array('id' => $event->getItem()->getId(), 'journalId' => $journal->getId())));
     }
     return $this->render('OjsJournalBundle:Article:edit.html.twig', ['entity' => $article, 'form' => $editForm->createView()]);
 }
コード例 #10
0
ファイル: SectionController.php プロジェクト: ojs/ojs
 /**
  * Edits an existing Section entity.
  *
  * @param  Request                   $request
  * @param $id
  * @return RedirectResponse|Response
  */
 public function updateAction(Request $request, $id)
 {
     $journal = $this->get('ojs.journal_service')->getSelectedJournal();
     $eventDispatcher = $this->get('event_dispatcher');
     if (!$this->isGranted('EDIT', $journal, 'sections')) {
         throw new AccessDeniedException("You are not authorized for edit this journal's section!");
     }
     $em = $this->getDoctrine()->getManager();
     $entity = $em->getRepository('OjsJournalBundle:Section')->find($id);
     if (!$entity) {
         throw $this->createNotFoundException('notFound');
     }
     $editForm = $this->createEditForm($entity);
     $editForm->handleRequest($request);
     if ($editForm->isValid()) {
         $event = new JournalItemEvent($entity);
         $eventDispatcher->dispatch(SectionEvents::PRE_UPDATE, $event);
         $em->persist($event->getItem());
         $em->flush();
         $event = new JournalItemEvent($event->getItem());
         $eventDispatcher->dispatch(SectionEvents::POST_UPDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
         $this->successFlashBag('successful.update');
         return $this->redirectToRoute('ojs_journal_section_edit', ['id' => $id, 'journalId' => $journal->getId()]);
     }
     return $this->render('OjsJournalBundle:Section:edit.html.twig', array('entity' => $entity, 'edit_form' => $editForm->createView()));
 }
コード例 #11
0
 /**
  * Edits an existing Lang entity.
  * @param  Request $request
  * @param  int $id
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
  */
 public function updateAction(Request $request, $id)
 {
     $journal = $this->get('ojs.journal_service')->getSelectedJournal();
     $eventDispatcher = $this->get('event_dispatcher');
     /** @var JournalPage $entity */
     $entity = $this->getDoctrine()->getRepository('OjsJournalBundle:JournalPage')->find($id);
     $this->throw404IfNotFound($entity);
     if (!$this->isGranted('EDIT', $journal, 'pages')) {
         throw new AccessDeniedException("You are not authorized for this page!");
     }
     $em = $this->getDoctrine()->getManager();
     $editForm = $this->createEditForm($entity);
     $editForm->handleRequest($request);
     if ($editForm->isValid()) {
         $entity->setSlug($entity->getTranslationByLocale($request->getDefaultLocale())->getTitle());
         $event = new JournalItemEvent($entity);
         $eventDispatcher->dispatch(JournalPageEvents::PRE_UPDATE, $event);
         $em->persist($event->getItem());
         $em->flush();
         $event = new JournalItemEvent($event->getItem());
         $eventDispatcher->dispatch(JournalPageEvents::POST_UPDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
         $this->successFlashBag('successful.update');
         return $this->redirectToRoute('ojs_journal_page_edit', ['id' => $entity->getId(), 'journalId' => $journal->getId()]);
     }
     return $this->render('OjsJournalBundle:JournalPage:edit.html.twig', array('entity' => $entity, 'edit_form' => $editForm->createView()));
 }
コード例 #12
0
ファイル: JournalUserMailer.php プロジェクト: beyzakokcan/ojs
 /**
  * @param JournalItemEvent $itemEvent
  */
 public function onJournalUserPostUpdate(JournalItemEvent $itemEvent)
 {
     /** @var JournalUser $journalUser */
     $journalUser = $itemEvent->getItem();
     $this->ojsMailer->sendToUser($journalUser->getUser(), 'Journal Event : Journal User Role Update', 'Journal Event : Journal User Role Update -> ' . $journalUser->getUser()->getUsername());
 }
コード例 #13
0
 public function updateUserAction(Request $request, $id)
 {
     $journal = $this->get('ojs.journal_service')->getSelectedJournal();
     $eventDispatcher = $this->get('event_dispatcher');
     $em = $this->getDoctrine()->getManager();
     if (!$this->isGranted('EDIT', $journal, 'userRole')) {
         throw new AccessDeniedException("You not authorized to remove this user from the journal.");
     }
     /** @var JournalUser $entity */
     $entity = $em->getRepository('OjsJournalBundle:JournalUser')->find($id);
     $editForm = $this->createEditForm($entity);
     $editForm->handleRequest($request);
     if ($editForm->isValid()) {
         $event = new JournalItemEvent($entity);
         $eventDispatcher->dispatch(JournalUserEvents::PRE_UPDATE, $event);
         $em->persist($event->getItem());
         $em->flush();
         $event = new JournalItemEvent($event->getItem());
         $eventDispatcher->dispatch(JournalUserEvents::POST_UPDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
         $this->successFlashBag('successful.update');
         return $this->redirectToRoute('ojs_journal_user_index', ['journalId' => $journal->getId()]);
     }
     $this->errorFlashBag('error');
     return $this->redirectToRoute('ojs_journal_user_edit', ['journalId' => $journal->getId(), 'id' => $entity->getId()]);
 }