/** * @param Request $request * @param $id * @return RedirectResponse|Response */ public function copyAction(Request $request, $id) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); if (!$this->isGranted('CREATE', $journal, 'mailTemplate')) { throw new AccessDeniedException("You are not authorized for view this page!"); } $entity = new MailTemplate(); $yamlParser = new Parser(); $defaultTemplates = $yamlParser->parse(file_get_contents($this->container->getParameter('kernel.root_dir') . '/../src/Ojs/JournalBundle/Resources/data/mailtemplates.yml')); $template = []; foreach ($defaultTemplates as $temp) { if ($temp['id'] == $id) { $template = $temp; break; } } $entity->setLang($template['lang'])->setSubject($template['subject'])->setTemplate(str_replace('<br>', "\n", $template['template']))->setType($template['type'])->setJournal($journal); $form = $this->createCreateForm($entity, $journal->getId()); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('ojs_journal_mail_template_show', array('id' => $entity->getId(), 'journalId' => $journal->getId()))); } return $this->render('OjsJournalBundle:MailTemplate:new.html.twig', array('entity' => $entity, 'form' => $form->createView())); }