src/Controller/FrontController.php line 74

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Activity;
  4. use App\Entity\Contact;
  5. use App\Entity\Customer;
  6. use App\Entity\Emplacement;
  7. use App\Entity\Sector;
  8. use App\Form\ActivityType;
  9. use App\Form\ContactType;
  10. use App\Form\CustomerType;
  11. use App\Form\EmplacementType;
  12. use App\Form\SectorType;
  13. use App\Repository\ActivityRepository;
  14. use App\Repository\ContactRepository;
  15. use App\Repository\CustomerRepository;
  16. use App\Repository\EmplacementRepository;
  17. use App\Repository\SectorRepository;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. class FrontController extends AbstractController
  23. {
  24.     #[Route('/'name'homepage')]
  25.     public function homepage(): Response
  26.     {
  27.         return $this->render('front/homepage.html.twig', [
  28.             'page_title' => 'CreaCard',
  29.         ]);
  30.     }
  31.     #[Route('/clients'name'customer_index'methods: ['GET'])]
  32.     public function customer_index(CustomerRepository $customerRepository): Response
  33.     {
  34.         return $this->render('front/customer_index.html.twig', [
  35.             'customers' => $customerRepository->findAll(),
  36.             'page_title' => 'Clients',
  37.         ]);
  38.     }
  39.     #[Route('/clients/{activity}'name'customer_index_activity'methods: ['GET'])]
  40.     public function customer_index_activity(ActivityRepository $activityRepositoryCustomerRepository $customerRepositorystring $activity): Response
  41.     {
  42.         $activity $activityRepository->findOneBy(['slug' => $activity]);
  43.         $customers $customerRepository->findBy(['activity' => $activity]);
  44.         return $this->render('front/customer_index_activity.html.twig', [
  45.             'customers' => $customers,
  46.             'page_title' => $activity->getName(),
  47.             'bg_color' => $activity->getSlug(),
  48.         ]);
  49.     }
  50.     #[Route('/emplacements'name'emplacement_index'methods: ['GET'])]
  51.     public function emplacement_index(EmplacementRepository $emplacementRepository): Response
  52.     {
  53.         return $this->render('front/emplacement_index.html.twig', [
  54.             'emplacements' => $emplacementRepository->findAll(),
  55.             'page_title' => 'Emplacements',
  56.         ]);
  57.     }
  58.     #[Route('/emplacements/{secteur}'name'emplacement_index_sector'methods: ['GET'])]
  59.     public function emplacement_index_sector(SectorRepository $sectorRepositoryEmplacementRepository $emplacementRepositorystring $secteur): Response
  60.     {
  61.         $secteur $sectorRepository->findOneBy(['slug' => $secteur]);
  62.         $emplacements $emplacementRepository->findBy(['secteur' => $secteur]);
  63.         return $this->render('front/emplacement_index_sector.html.twig', [
  64.             'emplacements' => $emplacements,
  65.             'page_title' => $secteur->getName(),
  66.             'page_slug' => $secteur->getSlug(),
  67.         ]);
  68.     }
  69.     #[Route('/emplacements/{secteur}/{slug}'name'emplacement'methods: ['GET'])]
  70.     public function emplacement(string $secteurstring $slugRequest $requestEmplacementRepository $emplacementRepositorySectorRepository $sectorRepository): Response
  71.     {
  72.         $emplacement $emplacementRepository->findOneBy([
  73.             'slug' => $slug,
  74.             'secteur' => $sectorRepository->findOneBy(['slug' => $secteur]),
  75.         ]);
  76.         if (!$emplacement) {
  77.             throw $this->createNotFoundException('L\'emplacement n\'existe pas');
  78.         }
  79.         return $this->render('front/emplacement.html.twig', [
  80.             'emplacement' => $emplacement,
  81.             'page_title' => $emplacement->getName(),
  82.         ]);
  83.     }
  84.     #[Route('/contact'name'contact'methods: ['GET''POST'])]
  85.     public function admin_contact_new(Request $requestContactRepository $contactRepository): Response
  86.     {
  87.         $contact = new Contact();
  88.         $form $this->createForm(ContactType::class, $contact);
  89.         $form->handleRequest($request);
  90.         if ($form->isSubmitted() && $form->isValid()) {
  91.             $contact->setCreatedAt(new \DateTimeImmutable());
  92.             $contactRepository->save($contacttrue);
  93.             return $this->redirectToRoute('homepage', [], Response::HTTP_SEE_OTHER);
  94.         }
  95.         return $this->renderForm('front/contact.html.twig', [
  96.             'contact' => $contact,
  97.             'form' => $form,
  98.             'page_title' => 'nous contacter',
  99.         ]);
  100.     }
  101. }