protected function makeMessage() { $data = $this->handleData($this->event->getData()); $params = $this->handleParams($this->fc_listener->getParams()); if (!is_array($params['email_to'])) { if (strpos($params['email_to'], ',') === false) { $params['email_to'] = array($params['email_to']); } else { $params['email_to'] = explode(',', $params['email_to']); } } $message = $this->mailer->createMessage()->setSubject($params['subject'])->setFrom($params['email_from'])->setTo($params['email_to']); foreach ($data as $key => $value) { if ($value instanceof UploadedFile) { $message->attach(\Swift_Attachment::fromPath($value->getPathname())->setFilename($value->getClientOriginalName())); unset($data[$key]); } } $message->setBody($this->makeBody($data), 'text/html'); return $message; }
protected function addListener(FormBuilderInterface $builder, FcFormEventListener $fc_listener) { $listener = $this->listener_chain->getListener($fc_listener->getListener()); $listener->buildListener($builder, $fc_listener); }
/** * Creates and saves a listener * * @param Request $request * @param $id * @param $listener * @return JsonResponse * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @throws \Symfony\Component\Security\Core\Exception\AccessDeniedException */ public function doCreateListenerAction(Request $request, $id, $listener) { try { if (!$request->isXmlHttpRequest()) { throw $this->createAccessDeniedException(); } $fc_form = FcFormQuery::create()->findPk($id); if (!$fc_form instanceof FcForm) { throw $this->createNotFoundException(); } $fc_listener = new FcFormEventListener(); $fc_listener->setListener($listener); $fc_listener->setFcForm($fc_form); $form_action = $this->admin->generateUrl('do_create_listener', array('id' => $id, 'listener' => $listener)); $form = $this->createForm(new ListenerCommonType($form_action, $this->get('translator'), $this->container->get('fc.listener.chain')->getParamsBuilder($listener, $this->admin->getSubject())), $fc_listener); $form->handleRequest($request); if ($form->isValid()) { $fc_listener->save(); return new JsonResponse(array('success' => true)); } } catch (\Exception $e) { return new JsonResponse(array('success' => false, 'view' => 'Error ' . $e->getCode() . ': ' . $e->getMessage())); } return new JsonResponse(array('success' => false, 'view' => $this->renderView('FenrizbesFormConstructorBundle:SonataAdmin/FcForm:form.html.twig', array('form' => $form->createView())))); }