complete controller and newsletter listener
This commit is contained in:
@@ -25,7 +25,8 @@ namespace Thelia\Action;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Thelia\Core\Event\Newsletter\NewsletterEvent;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
use Thelia\Tests\Action\BaseAction;
|
||||
use Thelia\Action\BaseAction;
|
||||
use Thelia\Model\Newsletter as NewsletterModel;
|
||||
|
||||
|
||||
/**
|
||||
@@ -38,7 +39,14 @@ class Newsletter extends BaseAction implements EventSubscriberInterface
|
||||
|
||||
public function subscribe(NewsletterEvent $event)
|
||||
{
|
||||
$newsletter = new NewsletterModel();
|
||||
|
||||
$newsletter
|
||||
->setEmail($event->getEmail())
|
||||
->setFirstname($event->getFirstname())
|
||||
->setLastname($event->getLastname())
|
||||
->setLocale($event->getLocale())
|
||||
->save();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
/*************************************************************************************/
|
||||
|
||||
namespace Thelia\Controller\Front;
|
||||
|
||||
use Thelia\Core\Event\Newsletter\NewsletterEvent;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
use Thelia\Form\Exception\FormValidationException;
|
||||
use Thelia\Form\NewsletterForm;
|
||||
|
||||
|
||||
@@ -45,7 +45,10 @@ class NewsletterController extends BaseFrontController
|
||||
|
||||
$form = $this->validateForm($newsletterForm);
|
||||
|
||||
$event = new NewsletterEvent($form->get('email')->getData());
|
||||
$event = new NewsletterEvent(
|
||||
$form->get('email')->getData(),
|
||||
$this->getRequest()->getSession()->getLang()->getLocale()
|
||||
);
|
||||
|
||||
if (null !== $customer = $this->getSecurityContext()->getCustomerUser())
|
||||
{
|
||||
@@ -55,7 +58,7 @@ class NewsletterController extends BaseFrontController
|
||||
|
||||
$this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $event);
|
||||
|
||||
} catch(FormValidationException $e) {
|
||||
} catch(\Exception $e) {
|
||||
$error_message = $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
@@ -47,9 +47,15 @@ class NewsletterEvent extends ActionEvent
|
||||
*/
|
||||
protected $lastname;
|
||||
|
||||
function __construct($email)
|
||||
/**
|
||||
* @var string current locale
|
||||
*/
|
||||
protected $locale;
|
||||
|
||||
function __construct($email, $locale)
|
||||
{
|
||||
$this->email = $email;
|
||||
$this->locale = $locale;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,6 +118,28 @@ class NewsletterEvent extends ActionEvent
|
||||
return $this->lastname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $locale
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setLocale($locale)
|
||||
{
|
||||
$this->locale = $locale;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getLocale()
|
||||
{
|
||||
return $this->locale;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user