From 30f09734814c6e96855c3faf8a971b9179a001fe Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Tue, 22 Oct 2013 09:51:42 +0200 Subject: [PATCH] complete newsletter controller --- .../Controller/Front/NewsletterController.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/lib/Thelia/Controller/Front/NewsletterController.php b/core/lib/Thelia/Controller/Front/NewsletterController.php index a5778ad46..b0d92353e 100644 --- a/core/lib/Thelia/Controller/Front/NewsletterController.php +++ b/core/lib/Thelia/Controller/Front/NewsletterController.php @@ -22,6 +22,8 @@ /*************************************************************************************/ namespace Thelia\Controller\Front; +use Thelia\Core\Event\Newsletter\NewsletterEvent; +use Thelia\Core\Event\TheliaEvents; use Thelia\Form\Exception\FormValidationException; use Thelia\Form\NewsletterForm; @@ -43,10 +45,31 @@ class NewsletterController extends BaseFrontController $form = $this->validateForm($newsletterForm); + $event = new NewsletterEvent($form->get('email')->getData()); + if (null !== $customer = $this->getSecurityContext()->getCustomerUser()) + { + $event->setFirstname($customer->getFirstname()); + $event->setLastname($customer->getLastname()); + } + + $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $event); } catch(FormValidationException $e) { + $error_message = $e->getMessage(); + } + if($error_message) { + \Thelia\Log\Tlog::getInstance()->error(sprintf('Error during sending contact mail : %s', $error_message)); + + $newsletterForm->setErrorMessage($error_message); + + $this->getParserContext() + ->addForm($newsletterForm) + ->setGeneralError($error_message) + ; + } else { + $this->redirectToRoute('newsletter.success'); } } } \ No newline at end of file