src/Controller/SiteController.php line 57
<?phpnamespace App\Controller;use App\Entity\CmsContact;use App\Entity\CmsNewsletter;use App\Form\CmsContactType;use App\Form\CmsNewsletterType;use App\Repository\CmsContactRepository;use App\Repository\CmsFaqRepository;use App\Repository\CmsNewsletterRepository;use App\Repository\CmsPartnerRepository;use App\Repository\CmsQuoteRepository;use App\Repository\OptionRepository;use App\Repository\PlanRepository;use App\Service\HostResolver;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;class SiteController extends AbstractController{#[Route('/', name: 'site_landing')]public function index(HostResolver $hostResolver,): Response{if (!$hostResolver->isKimiaDomain()) {return $this->redirectToRoute('app');}return $this->render('site/index.html.twig', ['theme_mode' => 'light',]);}#[Route('/pricing', name: 'site_pricing')]public function pricing(PlanRepository $planRepository, OptionRepository $optionRepository): Response{return $this->render('site/pricing.html.twig', ['plans' => $planRepository->findBy(['isVisible' => true]),'options' => $optionRepository->findBy([])]);}public function partnairs(CmsPartnerRepository $partnerRepository): Response{return $this->render('cms_partner/_partnairs.html.twig', ['partners' => $partnerRepository->findBy(['isVisible' => true])]);}public function faq(CmsFaqRepository $questionRepository): Response{return $this->render('cms_faq/_faq.html.twig', ['questions' => $questionRepository->findBy(['isPublic' => true])]);}public function quote(CmsQuoteRepository $quoteRepository): Response{return $this->render('cms_quote/_quote.html.twig', ['quotes' => $quoteRepository->findBy(['isPublic' => true])]);}#[Route('/about', name: 'site_about')]public function about(): Response{return $this->render('site/about.html.twig');}#[Route('/contact', name: 'site_contact', methods: ['GET', 'POST'])]public function contact(Request $request, CmsContactRepository $contactRepository): Response{$cmsContact = new CmsContact();$form = $this->createForm(CmsContactType::class, $cmsContact);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$contactRepository->save($cmsContact, true);$this->addFlash('success', "Votre deande de contact a été soumis avec succès");return $this->redirectToRoute('site_contact', [], Response::HTTP_CREATED);}return $this->render('site/contact.html.twig', ['form' => $form]);}#[Route('/newsletter', name: 'site_newsletter', methods: ['POST'])]public function newsletter(Request $request, CmsNewsletterRepository $cmsNewletterRepository): Response{$cmsNewletter = new CmsNewsletter();$form = $this->createForm(CmsNewsletterType::class, $cmsNewletter, ['action' => $this->generateUrl('site_newsletter')]);$form->handleRequest($request);if ($form->isSubmitted()) {if ($form->isValid()) {$cmsNewletterRepository->save($cmsNewletter, true);$this->addFlash('success', "Votre deande de contact a été soumis avec succès");return $this->redirectToRoute('site_landing', [], Response::HTTP_CREATED);}else {$this->addFlash('warning', "Cet adresse email est déjà abonné au newsletter");return $this->redirect($request->headers->get('referer'));}}return $this->render('site/newsletter.html.twig', ['form' => $form]);}#[Route('/help', name: 'site_help')]public function help(): Response{return $this->render('site/help.html.twig');}}