<?php
namespace App\Controller\Front;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Mime\Address;
use App\Repository\Blog\PostRepository;
class HomeController extends AbstractController
{
public function index(PostRepository $postRepository): Response
{
$recentPost = $postRepository->findRecent(2);
return $this->render('front/home/index.html.twig', compact('recentPost'));
}
public function about(): Response
{
return $this->render('front/home/about.html.twig');
}
public function contact(): Response
{
return $this->render('front/contact/index.html.twig');
}
public function contactSend(Request $request, MailerInterface $mailer, TranslatorInterface $translator): Response
{
$data = $request->request->All();
if (!empty($data)) {
$senderMail = $this->getParameter('sender_mail');
$email = (new TemplatedEmail())
->from(new Address($senderMail, 'Demande de contact'))
->to('contact@sofel-legal-consulting.com')
->subject($request->request->get('subject'))
->htmlTemplate('front/contact/email.html.twig')
->context($data);
$mailer->send($email);
$this->addFlash('success_en', $translator->trans('app.contact.sendsuccess'));
}
return $this->redirectToRoute('contact');
}
/**
* @Route("/lang", name="switch_lang", methods={"GET"})
*/
public function switch_lang(Request $request): Response
{
$request->setLocale($request->query->get('lang'));
return $this->redirectToRoute('index');
}
}