X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/58242917a50ec39071529953e77343fd3eb6dda0..e87908b919495a843e98d6679d2105c2bcb5eef2:/Controller/DefaultController.php diff --git a/Controller/DefaultController.php b/Controller/DefaultController.php index 31d4b89..b0aed10 100644 --- a/Controller/DefaultController.php +++ b/Controller/DefaultController.php @@ -2,23 +2,36 @@ namespace Rapsys\AirBundle\Controller; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Bundle\FrameworkBundle\Translation\Translator; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\HttpFoundation\Request; use Rapsys\AirBundle\Entity\Session; use Rapsys\AirBundle\Entity\Application; use Symfony\Component\Form\FormError; -class DefaultController extends Controller { - public function contactAction(Request $request) { - //Get translator - $trans = $this->get('translator'); +class DefaultController extends AbstractController { + //Config array + protected $config; + + //Translator instance + protected $translator; + + public function __construct(ContainerInterface $container, Translator $translator) { + //Retrieve config + $this->config = $container->getParameter($this->getAlias()); + + //Set the translator + $this->translator = $translator; + } + public function contactAction(Request $request) { //Set section - $section = $trans->trans('Contact'); + $section = $this->translator->trans('Contact'); //Set title - $title = $section.' - '.$trans->trans($this->getParameter('rapsys_air.title')); + $title = $section.' - '.$this->translator->trans($this->config['title']); //Create the form according to the FormType created previously. //And give the proper parameters @@ -37,22 +50,29 @@ class DefaultController extends Controller { $data = $form->getData(); //Get contact name - $contactName = $this->getParameter('rapsys_air.contact_name'); + $contactName = $this->config['contact_name']; //Get contact mail - $contactMail = $this->getParameter('rapsys_air.contact_mail'); + $contactMail = $this->config['contact_mail']; //Get logo - $logo = $this->getParameter('rapsys_air.logo'); + $logo = $this->config['logo']; //Get title - $title = $trans->trans($this->getParameter('rapsys_air.title')); + $title = $this->translator->trans($this->config['title']); //Get subtitle - $subtitle = $trans->trans('Hi,').' '.$contactName; + $subtitle = $this->translator->trans('Hi,').' '.$contactName; + + //Create sendmail transport + $transport = new \Swift_SendmailTransport(); + + //Create mailer using transport + $mailer = new \Swift_Mailer($transport); - $message = \Swift_Message::newInstance() - ->setSubject($data['subject']) + //Create the message + ($message = new \Swift_Message($data['subject'])) + #->setSubject($data['subject']) ->setFrom([$data['mail'] => $data['name']]) ->setTo([$contactMail => $contactName]) ->setBody($data['message']) @@ -71,8 +91,9 @@ class DefaultController extends Controller { ), 'text/html' ); - //Send message - if ($this->get('mailer')->send($message)) { + + //Send the message + if ($mailer->send($message)) { //Redirect to cleanup the form return $this->redirectToRoute('rapsys_air_contact', ['sent' => 1]); } @@ -84,29 +105,26 @@ class DefaultController extends Controller { } public function indexAction() { - //Get translator - $trans = $this->get('translator'); - //Set section - $section = $trans->trans('Index'); + $section = $this->translator->trans('Index'); //Set title - $title = $section.' - '.$trans->trans($this->getParameter('rapsys_air.title')); + $title = $section.' - '.$this->translator->trans($this->config['title']); + //Render template return $this->render('@RapsysAir/page/index.html.twig', ['title' => $title, 'section' => $section]); } public function adminAction(Request $request) { + //Prevent non-admin to access here + //TODO: maybe check if user is connected 1st ? $this->denyAccessUnlessGranted('ROLE_ADMIN', null, 'Unable to access this page!'); - //Get translator - $trans = $this->get('translator'); - //Set section - $section = $trans->trans('Admin'); + $section = $this->translator->trans('Admin'); //Set title - $title = $section.' - '.$trans->trans($this->getParameter('rapsys_air.title')); + $title = $section.' - '.$this->translator->trans($this->config['title']); //Create the form according to the FormType created previously. //And give the proper parameters @@ -158,7 +176,7 @@ class DefaultController extends Controller { $application = $doctrine->getRepository(Application::class)->findOneBySessionUser($session, $this->getUser()); //Add error message to mail field - $form->get('slot')->addError(new FormError($trans->trans('Application already exists'))); + $form->get('slot')->addError(new FormError($this->translator->trans('Application already exists'))); //Catch no application cases //XXX: combine these catch when php 7.1 is available } catch (\Doctrine\ORM\NoResultException $e) { @@ -181,7 +199,7 @@ class DefaultController extends Controller { $manager->flush(); //Add notice in flash message - $this->addFlash('notice', $trans->trans('Application request the %date% for %location% on the slot %slot% saved', ['%location%' => $data['location']->getTitle(), '%slot%' => $data['slot']->getTitle(), '%date%' => $data['date']->format('Y-m-d')])); + $this->addFlash('notice', $this->translator->trans('Application request the %date% for %location% on the slot %slot% saved', ['%location%' => $data['location']->getTitle(), '%slot%' => $data['slot']->getTitle(), '%date%' => $data['date']->format('Y-m-d')])); //Redirect to cleanup the form return $this->redirectToRoute('rapsys_air_admin'); @@ -276,14 +294,11 @@ class DefaultController extends Controller { var_dump($calendar); exit;*/ - //Get translator - $trans = $this->get('translator'); - //Set section - $section = $trans->trans('Session %id%', ['%id%' => $id]); + $section = $this->translator->trans('Session %id%', ['%id%' => $id]); //Set title - $title = $section.' - '.$trans->trans($this->getParameter('rapsys_air.title')); + $title = $section.' - '.$this->translator->trans($this->config['title']); //Create the form according to the FormType created previously. //And give the proper parameters @@ -302,4 +317,11 @@ class DefaultController extends Controller { return $this->render('@RapsysAir/admin/session.html.twig', ['title' => $title, 'section' => $section, /*'form' => $form->createView(),*/ 'session' => $session]); } + + /** + * {@inheritdoc} + */ + public function getAlias() { + return 'rapsys_air'; + } }