/** * 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()); }
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); } }
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)); }
/** * @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); }
/** * @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; }
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)); }
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; }
/** * 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); }
/** * 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)); }
/** * 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); }
/** * 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)); }
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; }
/** * @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; }