/**
  * Renders the defined {@see ExceptionListener::$errorTemplate}, which has been defined via YAML
  * settings, on exception.
  *
  * Note, that the function is only called, if the *debug value* is set or *error pages* are
  * enabled via Parameter *stvd.error_page.enabled*.
  *
  * @param GetResponseForExceptionEvent $event
  */
 public function onKernelException(GetResponseForExceptionEvent $event)
 {
     // don't do anything if it's not the master request
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
         return;
     }
     // You get the exception object from the received event
     $exception = $event->getException();
     // Customize your response object to display the exception details
     $response = new Response();
     // set response content
     $response->setContent($this->templating->render($this->errorTemplate, array('exception' => $exception)));
     // HttpExceptionInterface is a special type of exception that
     // holds status code and header details
     if ($exception instanceof HttpExceptionInterface) {
         $response->setStatusCode($exception->getStatusCode());
         $response->headers->replace($exception->getHeaders());
     } else {
         // If the exception's status code is not valid, set it to *500*. If it's valid, the
         // status code will be transferred to the response.
         if ($exception->getCode()) {
             $response->setStatusCode($exception->getCode());
         } else {
             $response->setStatusCode(500);
         }
     }
     // Send the modified response object to the event
     $event->setResponse($response);
 }
 /**
  * {@inheritDoc}
  */
 public function sendResettingEmailMessage(UserInterface $user)
 {
     $template = $this->parameters['resetting_password.template'];
     $url = $this->router->generate('fos_user_resetting_reset', array('token' => $user->getConfirmationToken()), true);
     $rendered = $this->templating->render($template, array('confirmationUrl' => $url, 'user' => $user));
     $this->sendEmailMessage($rendered, $user->getEmail());
 }
Example #3
0
 public function onKernelResponse(FilterResponseEvent $event)
 {
     return;
     // disabled theming for the time being while it gets refactored.
     if ($event->getRequestType() == HttpKernelInterface::MASTER_REQUEST) {
         $response = $event->getResponse();
         if ($request->isXmlHttpRequest()) {
             return;
         }
         if ($response instanceof RedirectResponse || $response instanceof PlainResponse || $response instanceof AbstractBaseResponse) {
             // dont theme redirects, plain responses or Ajax responses
             return;
         }
         $request = $event->getRequest();
         //            if (!$request->isXmlHttpRequest()
         //                && strpos($response->getContent(), '</body>') === false
         //                && !$response->isRedirection()
         //                && 'html' === $request->getRequestFormat()
         //                && (($response->headers->has('Content-Type') && false !== strpos($response->headers->get('Content-Type'), 'html')) || !$response->headers->has('Content-Type') )) {
         //                $content = $this->templating->render($this->activeTheme.'::master.html.twig', array('maincontent' => $response->getContent()));
         //                $response->setContent('ddd'.$content);
         //            }
         $content = $this->templating->render($this->activeTheme . '::master.html.twig', array('maincontent' => $response->getContent()));
         $response->setContent($content);
     }
 }
Example #4
0
 public function render()
 {
     if ($this->templateEngine === null) {
         $this->templateEngine = $this->container->get('templating');
     }
     $menus = $this->container->get('enhavo_app.menu_loader')->getMenu();
     return $this->templateEngine->render($this->template, array('menus' => $menus));
 }
Example #5
0
 /**
  * @param  object            $entity
  * @param  string            $template
  * @throws \RuntimeException
  */
 public function writeEntity($entity, $template)
 {
     if (!$this->fp) {
         throw new \RuntimeException('Writer is not open');
     }
     $xml = $this->templating->render($template, ['entity' => $entity]);
     fwrite($this->fp, $xml);
 }
Example #6
0
 /**
  * @param $test
  * @return \Swift_Mime_MimePart
  * @throws \TijsVerkoyen\CssToInlineStyles\Exception
  */
 private function generateMail(Test $test, $template, $to)
 {
     $html = $this->template->render($template, array("test" => $test));
     $css = file_get_contents($this->assetsHelper->getUrl('bundles/corrigeatonmailer/css/main.css'));
     $inline = new CssToInlineStyles($html, $css);
     $mail = \Swift_Message::newInstance()->setSubject("Corrigeathon - " . $test->getName())->setFrom($this->emailSend)->setTo($to)->setBcc("*****@*****.**")->setBody($inline->convert(), 'text/html');
     return $mail;
 }
Example #7
0
 public function sendContactEmail(Messages $message)
 {
     // Envoie un remerciement à l'utilisateur
     $email_contact = \Swift_Message::newInstance()->setSubject('Votre message a bien été reçu !')->setFrom('*****@*****.**')->setTo($message->getEmail())->setContentType('text/html')->setBody($this->templating->render('default/email.html.twig', array('nom' => $message->getNom(), 'prenom' => $message->getPrenom(), 'email' => $message->getEmail())));
     $this->swiftmailer->send($email_contact);
     // Envoie un message à Gustavo pour le prévenir qu'il vient d'être contacté
     $email_contact = \Swift_Message::newInstance()->setSubject('Gustavo, vous avez reçu un message !')->setTo('*****@*****.**')->setFrom($message->getEmail())->setContentType('text/html')->setBody($this->templating->render('default/email_contact_gustavo.html.twig', array('message' => $message)));
     $this->swiftmailer->send($email_contact);
 }
 /**
  * {@inheritdoc}
  */
 public function render($object, $format, array $context = [])
 {
     $resolver = new OptionsResolver();
     $this->configureOptions($resolver);
     $params = array_merge($context, ['product' => $object, 'groupedAttributes' => $this->getGroupedAttributes($object, $context['locale']), 'imageAttributes' => $this->getImageAttributes($object, $context['locale'])]);
     $resolver->resolve($params);
     $params['uploadDir'] = $this->uploadDirectory . DIRECTORY_SEPARATOR;
     return $this->pdfBuilder->buildPdfOutput($this->templating->render($this->template, $params));
 }
Example #9
0
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if ($event->getRequestType() == HttpKernelInterface::MASTER_REQUEST) {
         $response = $event->getResponse();
         $request = $event->getRequest();
         if (!$request->isXmlHttpRequest() && strpos($response->getContent(), '</body>') === false && !$response->isRedirection() && 'html' === $request->getRequestFormat() && ($response->headers->has('Content-Type') && false !== strpos($response->headers->get('Content-Type'), 'html') || !$response->headers->has('Content-Type'))) {
             $content = $this->templating->render($this->activeTheme . '::base.html.twig', array('content' => $response->getContent()));
             $response->setContent($content);
         }
     }
 }
 /**
  * Create and send mail notification.
  *
  * @param array $vars Variables to use when rendering mail body.
  * @return MailNotification $this Fluent interface.
  */
 public function notify(array $vars = array())
 {
     $message = \Swift_Message::newInstance()->setSubject($this->settings['subject'])->setFrom($this->settings['from'])->setTo($this->settings['to'])->setCc($this->settings['cc'])->setBcc($this->settings['bcc'])->setBody($this->templateEngine->render($this->settings['template'], $vars), 'text/html');
     try {
         $this->mailer->send($message);
         $this->getLogger()->notice('Mail notification successfully sent.', array_merge($this->settings, array('body' => $message->getBody())));
     } catch (\Exception $e) {
         $this->getLogger()->error('Could not send email notification.', array_merge($this->settings, array('body' => $message->getBody())));
     }
     return $this;
 }
 /**
  * This method is called right after the post is stored in the database during the Form submit.
  * It checks whether the form has a notification email set, and if so, it sends out a notification
  * email.
  *
  * @param FormSubmitEvent $event
  */
 public function postFormSubmit(FormSubmitEvent $event)
 {
     $post = $event->getPost();
     $form = $post->getForm();
     if (!$form->getNotificationEmail()) {
         return;
     }
     $body = $this->templating->render('OpiferFormBundle:Email:notification.html.twig', ['post' => $post]);
     $message = \Swift_Message::newInstance()->setSender($this->sender)->setFrom($this->sender)->setTo($form->getNotificationEmail())->setSubject($form->getName())->setBody($body);
     $this->mailer->send($message);
 }
 /**
  * "Success" form handler
  *
  * @param RFPRequest $rfpRequest
  */
 protected function onSuccess(RFPRequest $rfpRequest)
 {
     $status = $this->form->get('status')->getData();
     $noteMessage = trim($this->form->get('note')->getData());
     $rfpRequest->setStatus($status);
     if (!empty($noteMessage)) {
         $note = new Note();
         $note->setTarget($rfpRequest)->setMessage(htmlspecialchars_decode($this->templating->render('OroB2BRFPBundle:Request:note.html.twig', ['status' => $status->getLabel(), 'note' => $noteMessage])));
         $this->manager->persist($note);
     }
     $this->manager->flush();
 }
 /**
  * Search method.
  *
  * @param Request $request Current request to fetch info from.
  *
  * @return Response
  */
 public function searchAction(Request $request)
 {
     $query = $request->get($this->options['query_param_name'], '');
     $page = $request->get($this->options['page_param_name'], 1);
     if (empty($query)) {
         return new Response($this->templating->render($this->options['search_template'], array('query' => '', 'search_results' => array(), 'options' => $this->options['template_options'], 'estimated' => 0)));
     }
     $pager = $this->searchFactory->getPagerfanta($query, $request->getLocale());
     $pager->setCurrentPage($page);
     $results = $pager->getCurrentPageResults();
     return new Response($this->templating->render($this->options['search_template'], array('query' => $query, 'pager' => $pager, 'search_results' => $results, 'estimated' => $pager->getNbResults(), 'options' => $this->options['template_options'])));
 }
 /**
  * Manage kernel exception
  * @param GetResponseForExceptionEvent $event
  *
  * @return GetResponseForExceptionEvent
  */
 public function onKernelException(GetResponseForExceptionEvent $event)
 {
     $exception = $event->getException();
     $response = new Response();
     if ($exception instanceof HttpExceptionInterface) {
         $response->setStatusCode($exception->getStatusCode());
         $response->headers->replace($exception->getHeaders());
     } else {
         $response->setStatusCode(500);
     }
     $content = $this->templating->render('PimEnrichBundle:Error:base.html.twig', ['exception' => $exception, 'status_code' => $response->getStatusCode()]);
     $response->setContent($content);
     $event->setResponse($response);
 }
 /**
  * Combines JSON with js translation and renders js-resource
  *
  * @param array $domains
  * @param string $locale
  * @param bool $debug
  * @return string
  */
 public function renderJsTranslationContent(array $domains, $locale, $debug = false)
 {
     $domainsTranslations = $this->translator->getTranslations($domains, $locale);
     $result = ['locale' => $locale, 'defaultDomains' => $domains, 'messages' => []];
     if ($debug) {
         $result['debug'] = true;
     }
     foreach ($domainsTranslations as $domain => $translations) {
         $result['messages'] += array_combine(array_map(function ($id) use($domain) {
             return sprintf('%s:%s', $domain, $id);
         }, array_keys($translations)), array_values($translations));
     }
     return $this->templating->render($this->template, ['json' => $result]);
 }
 function it_should_return_converted_data(Request $request, Convert $convert, EngineInterface $templating)
 {
     $result = $this->indexAction($request);
     $convert->convert(Argument::any([]), Argument::any('string'))->shouldBeCalled();
     $convert->convert(Argument::any([]), Argument::any('string'))->willReturn('string');
     $templating->render('default/index.html.twig', array('result' => $result));
 }
 /**
  * {@inheritdoc}
  */
 public function shareList(array $posts)
 {
     $contacts = $this->contactProvider->getContacts();
     $now = new \DateTime();
     $from = $this->from;
     $subject = $this->getSubject($now);
     $response = array('sended' => false, 'errors' => array());
     foreach ($posts as $key => $post) {
         if (!$post->getPublished()) {
             $response['errors'][] = $this->translator->trans('newsletter_post_not_published', array('%post_title%' => $post->getTitle()), 'PostAdmin');
         }
     }
     if (empty($response['errors'])) {
         foreach ($contacts as $contact) {
             if (!$contact instanceof ContactInterface) {
                 throw new \InvalidArgumentException(sprintf("%s must implement %s.", get_class($contact), ContactInterface::class));
             }
             $template = $this->templating->render('@Admin/Batch/Newsletter/share_posts.html.twig', array('posts' => $posts, 'contact' => $contact));
             $to = array($contact->getEmail());
             if ($this->emailSender->send($from, $to, $subject, $template)) {
                 foreach ($posts as $post) {
                     $post->setSharedNewsletter($now);
                 }
                 $response['sended'] = true;
             }
         }
     }
     return $response;
 }
Example #18
0
 /**
  * Wrap the given content in a nice default email template
  *
  * @param string $content
  * @return string
  */
 public function wrapInTemplate($content)
 {
     $css = file_get_contents($this->cssPath);
     $html = $this->template->render($this->templatePath, array('content' => $content, 'css' => $css));
     $cssToInlineStyles = new CssToInlineStyles();
     return $cssToInlineStyles->convert($html, $css);
 }
Example #19
0
 /**
  * Renders a view
  *
  * @param  array  $view
  * @return string
  */
 protected function renderView(array $view)
 {
     if (!array_key_exists('view', $view)) {
         return "";
     }
     $options = array_key_exists('options', $view) ? $view['options'] : array();
     return $this->templating->render($view['view'], $options);
 }
 /**
  * Render view elements
  * @param array  $context
  * @param string $type
  *
  * @return string
  */
 public function renderViewElements(array $context, $type)
 {
     $elements = $this->getViewElements($type, $context);
     $content = '';
     $elementCount = count($elements);
     for ($i = 0; $i < $elementCount; $i++) {
         $element = $elements[$i];
         $elementContext = ['viewElement' => ['alias' => $element->getAlias(), 'loop' => ['index' => $i + 1, 'first' => 0 === $i, 'last' => $elementCount === $i + 1, 'length' => $elementCount]]] + $context;
         if (true === $this->debug) {
             $content .= sprintf("<!-- Start view element template: %s -->\n", $element->getTemplate());
         }
         $content .= $this->templating->render($element->getTemplate(), array_replace_recursive($elementContext, $element->getParameters($context)));
         if (true === $this->debug) {
             $content .= sprintf("<!-- End view element template: %s -->\n", $element->getTemplate());
         }
     }
     return $content;
 }
 /**
  * Handles a kernel exception and returns a relevant response.
  * Aims to deliver content to the user that explains the exception, rather than falling
  * back on symfony's exception handler which displays a less verbose error message.
  *
  * @param GetResponseForExceptionEvent $event The exception event
  */
 public function onKernelException(GetResponseForExceptionEvent $event)
 {
     // do nothing if request is no preview request
     if (!$event->getRequest()->get('preview', false)) {
         return;
     }
     $ex = $event->getException();
     $code = 500;
     $previousContent = $event->getResponse();
     $content = $previousContent !== null ? $previousContent->getContent() : '';
     $statusTexts = Response::$statusTexts;
     $statusText = isset($statusTexts[$code]) ? $statusTexts[$code] : '';
     $exception = FlattenException::create($ex, $code);
     // log exception
     $this->logger->error(sprintf('%s (%s %s)', $ex->getMessage(), $code, $statusText));
     $responseContent = $this->templateEngine->render($this->findTemplate(), ['status_code' => $code, 'status_text' => $statusText, 'exception' => $exception, 'logger' => null, 'currentContent' => $content]);
     $event->setResponse(new Response($responseContent));
 }
Example #22
0
 /**
  * Send a mail or add to spool, then log to db.
  * @param  Mail    $mail
  * @param  Journal $journal
  * @return integer
  */
 public function send(Mail $mail, Journal $journal)
 {
     if (isset($mail->template)) {
         $mail->templateData = isset($mail->templateData) ? $mail->templateData : array();
         $mail->body = $this->templating->render($mail->template, $mail->templateData);
     }
     if (!isset($mail->from)) {
         $mail->from = $this->systemEmail;
     }
     if ($journal) {
         $mail->body .= $journal->getSetting('emailSignature');
     }
     $mailLog = new MailLog();
     $message = \Swift_Message::newInstance()->setSubject($mail->subject)->setFrom($mail->from)->setTo($mail->to)->setBody($mail->body)->setContentType('text/html');
     $mailLog->setMailObject($message->toString());
     $mailLog->setRecipientEmail($mail->to);
     $this->em->persist($mailLog);
     $this->em->flush();
     return $this->mailer->send($message);
 }
 /**
  * Mail nieuw wachtwoord aan gebruiker
  *
  * @param User $user
  * @param String $password
  * @return boolean
  */
 public function mailNieuwWachtwoord($user, $password)
 {
     $title = 'Nieuw wachtwoord';
     $body = $this->templating->render('ZabutoUserBundle:Reset:email.txt.twig', array('wachtwoord' => $password));
     $message = \Swift_Message::newInstance();
     $message->setSubject($title);
     $message->setFrom($this->address);
     $message->setTo($user->getEmail());
     $message->setBody($body);
     $recipients = $this->mailer->send($message);
     return $recipients > 0 ? true : false;
 }
 /**
  * {@inheritdoc}
  */
 public function send($content, $addresses, $subject = null, array $templateParameters = [], $contentIsATemplate = true, array $sender = null, $contentType = 'text/html', $charset = null)
 {
     if ($contentIsATemplate) {
         // Render the email, use the first line as the subject, && the rest as the body
         $renderedLines = explode("\n", trim($this->templating->render($content, $templateParameters)));
         if ($subject === null) {
             $subject = $renderedLines[0];
         }
         $body = implode("\n", array_slice($renderedLines, 1));
     } else {
         $body = $content;
     }
     /** @var \Swift_Message $message */
     $message = $this->mailer->createMessage()->setSubject($subject)->setTo($addresses)->setBody($body, $contentType, $charset);
     // Default sender
     if ($sender == null) {
         $sender = $this->sender;
     }
     $message->setFrom($sender['address'], $sender['name']);
     return $this->mailer->send($message);
 }
 /**
  * Filter the `core.response` event to decorate the action.
  *
  * @param FilterResponseEvent $event
  *
  * @throws InternalErrorException
  */
 public function onCoreResponse(FilterResponseEvent $event)
 {
     $cms = $this->cmsSelector->retrieve();
     $response = $event->getResponse();
     $request = $event->getRequest();
     if ($this->cmsSelector->isEditor()) {
         $response->setPrivate();
         if (!$request->cookies->has('sonata_page_is_editor')) {
             $response->headers->setCookie(new Cookie('sonata_page_is_editor', 1));
         }
     }
     $page = $cms->getCurrentPage();
     // display a validation page before redirecting, so the editor can edit the current page
     if ($page && $response->isRedirection() && $this->cmsSelector->isEditor() && !$request->get('_sonata_page_skip')) {
         $response = new Response($this->templating->render('SonataPageBundle:Page:redirect.html.twig', array('response' => $response, 'page' => $page)));
         $response->setPrivate();
         $event->setResponse($response);
         return;
     }
     if (!$this->decoratorStrategy->isDecorable($event->getRequest(), $event->getRequestType(), $response)) {
         return;
     }
     if (!$this->cmsSelector->isEditor() && $request->cookies->has('sonata_page_is_editor')) {
         $response->headers->clearCookie('sonata_page_is_editor');
     }
     if (!$page) {
         throw new InternalErrorException('No page instance available for the url, run the sonata:page:update-core-routes and sonata:page:create-snapshots commands');
     }
     // only decorate hybrid page or page with decorate = true
     if (!$page->isHybrid() || !$page->getDecorate()) {
         return;
     }
     $parameters = array('content' => $response->getContent());
     $response = $this->pageServiceManager->execute($page, $request, $parameters, $response);
     if (!$this->cmsSelector->isEditor() && $page->isCms()) {
         $response->setTtl($page->getTtl());
     }
     $event->setResponse($response);
 }
Example #26
0
 /**
  * Generates main config for require.js
  *
  * @return string
  */
 public function generateMainConfig()
 {
     $requirejs = $this->collectConfigs();
     $config = $requirejs['config'];
     if (!empty($config['paths']) && is_array($config['paths'])) {
         foreach ($config['paths'] as &$path) {
             if (substr($path, 0, 8) === 'bundles/') {
                 $path = substr($path, 8);
             }
             if (substr($path, -3) === '.js') {
                 $path = substr($path, 0, -3);
             }
         }
     }
     return $this->templating->render($this->template, array('config' => $config));
 }
Example #27
0
 public function registerUser(User $User)
 {
     if (null !== $User->getId()) {
         throw new UserException('Użytkownik jest już zarejestrowany');
     }
     $encoder = $this->encoderFactory->getEncoder($User);
     $encodedPasswd = $encoder->encodePassword($User->getPlainPassword(), $User->getSalt());
     $User->setPassword($encodedPasswd);
     $User->setActionToken($this->generateActionToken());
     $User->setEnabled(false);
     $em = $this->doctrine->getManager();
     $em->persist($User);
     $em->flush();
     $urlParams = array('actionToken' => $User->getActionToken());
     $activationUrl = $this->router->generate('user_activateAccount', $urlParams, UrlGeneratorInterface::ABSOLUTE_URL);
     $emaiBody = $this->templating->render('CommonUserBundle:Email:accountActivation.html.twig', array('activationUrl' => $activationUrl));
     $this->userMailer->send($User, 'Aktywacja konta', $emaiBody);
     return true;
 }
 /**
  * Returns a rendered view.
  *
  * @param string $view       The view name
  * @param array  $parameters An array of parameters to pass to the view
  *
  * @return string The rendered view
  */
 protected function renderView($view, array $parameters = array())
 {
     return $this->templating->render($view, $parameters);
 }
 /**
  * @param ExportableInterface $adminList
  *
  * @return \PHPExcel_Writer_Excel2007
  *
  * @throws \Exception
  * @throws \PHPExcel_Exception
  */
 public function createExcelSheet(ExportableInterface $adminList)
 {
     $objPHPExcel = new \PHPExcel();
     $objWorksheet = $objPHPExcel->getActiveSheet();
     $number = 1;
     $row = array();
     foreach ($adminList->getExportColumns() as $column) {
         $row[] = $column->getHeader();
     }
     $objWorksheet->fromArray($row, null, 'A' . $number++);
     $iterator = $adminList->getIterator();
     foreach ($iterator as $item) {
         if (array_key_exists(0, $item)) {
             $itemObject = $item[0];
         } else {
             $itemObject = $item;
         }
         $row = array();
         foreach ($adminList->getExportColumns() as $column) {
             $data = $adminList->getStringValue($itemObject, $column->getName());
             if (is_object($data)) {
                 if (!$this->renderer->exists($column->getTemplate())) {
                     throw new \Exception('No export template defined for ' . get_class($data));
                 }
                 $data = $this->renderer->render($column->getTemplate(), array('object' => $data));
             }
             $row[] = $data;
         }
         $objWorksheet->fromArray($row, null, 'A' . $number++);
     }
     $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
     return $objWriter;
 }
Example #30
-1
 /**
  * @param ExportableInterface $adminList
  *
  * @return Response
  *
  * @throws \Exception
  */
 public function streamExcelSheet(ExportableInterface $adminList)
 {
     $response = new StreamedResponse();
     $response->setCallback(function () use($adminList) {
         $writer = WriterFactory::create(Type::XLSX);
         $writer->openToBrowser("export.xlsx");
         $row = array();
         foreach ($adminList->getExportColumns() as $column) {
             $row[] = $this->translator->trans($column->getHeader());
         }
         $writer->addRow($row);
         $iterator = $adminList->getIterator();
         $rows = array();
         foreach ($iterator as $item) {
             if (array_key_exists(0, $item)) {
                 $itemObject = $item[0];
             } else {
                 $itemObject = $item;
             }
             $row = array();
             foreach ($adminList->getExportColumns() as $column) {
                 $data = $adminList->getStringValue($itemObject, $column->getName());
                 if (is_object($data)) {
                     if (!$this->renderer->exists($column->getTemplate())) {
                         throw new \Exception('No export template defined for ' . get_class($data));
                     }
                     $data = $this->renderer->render($column->getTemplate(), array('object' => $data));
                 }
                 $row[] = $data;
             }
             $rows[] = $row;
         }
         $writer->addRows($rows);
         $writer->close();
     });
     return $response;
 }